/* cyrillic-ext */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../webfonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  
  :root {
      --bg-dark-primary: #1c1c1e;
      --bg-dark-secondary: #2c2c2e;
      --bg-dark-tertiary: #3a3a3c;
      --text-primary: #ffffff;
      --text-secondary: #a9a9b3;
      --accent-primary: #0a84ff;
      --accent-secondary: #64d2ff;
      --accent-gradient: linear-gradient(90deg, var(--accent-primary) 0%, var(--accent-secondary) 100%);
      --user-message-bg: #2a3942;
      --ai-message-bg: var(--bg-dark-tertiary);
      --border-color: #3f3f44;
      --font-family: 'Manrope', sans-serif;
      --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
      --shadow-md: 0 4px 12px rgba(0,0,0,0.3);
      --scrollbar-track: #2c2c2e;
      --scrollbar-thumb: #555558;
      --scrollbar-thumb-hover: #6e6e72;
  }
  
  * {
      margin: 0;
      box-sizing: border-box;
      padding: 0px;
      scrollbar-width: thin;
  }
  
  body {
      font-family: var(--font-family);
      background: var(--bg-dark-primary);
      color: var(--text-primary);
      margin: 0;
      height: 100dvh;
      overflow: hidden;
      scrollbar-width: thin;
      scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  }
  
  .app-layout {
      display: flex;
      height: 100vh;
      width: 100vw;
  }
  
  .chat-container {
      flex: 1;
      display: flex;
      flex-direction: column;
      background-color: var(--bg-dark-primary);
      position: relative;
      overflow: hidden;
      transition: padding-bottom 0.3s ease;
  }
  
  .chat-container.subscription-view-active {
      overflow-y: auto;
  }
  
  .chat-container.subscription-view-active .chat-footer {
      display: none;
  }
  
  .chat-container.is-welcome .messages {
      flex-grow: 0;
      overflow: visible;
      justify-content: center;
  }
  
  .chat-footer {
      padding: 0.2rem;
      text-align: center;
      font-size: 0.6rem;
      color: var(--text-secondary);
  }
  
  .chat-container:not(.is-welcome) .chat-footer {
      display: none;
  }
  
  .chat-container.is-welcome .chat-footer {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
  }
  
  .chat-header {
      padding: 1.5rem 2rem;
      border-bottom: 1px solid var(--border-color);
      display: flex;
  }
  
  .model-selector {
      display: flex;
      align-items: center;
      gap: 12px;
      background-color: var(--bg-dark-tertiary);
      padding: 8px 12px;
      border-radius: 8px;
  }
  
  .model-selector i {
      color: var(--text-secondary);
      font-size: 0.9rem;
  }
  
  #model-select {
      background: transparent;
      border: none;
      outline: none;
      color: var(--text-primary);
      font-family: var(--font-family);
      font-size: 0.9rem;
      font-weight: 600;
  }
  
  #model-select option {
      background: var(--bg-dark-tertiary);
      border: none;
  }
  
  .chat-header {
      text-align: center;
      padding-bottom: 16px;
      border-bottom: 1px solid var(--border-color);
  }
  .chat-header h2 {
      font-size: 1.8rem;
      font-weight: 700;
  }
  .chat-header p {
      color: var(--text-secondary);
      font-size: 1rem;
  }
  
  .messages {
      flex-grow: 1;
      overflow-y: auto;
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
  }
  
  .welcome-screen {
      flex-grow: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      color: var(--text-secondary);
  }
  
  .welcome-screen .welcome-logo {
      width: 60px;
      height: 60px;
      margin-bottom: 1.5rem;
  }
  
  .welcome-screen h1 {
      font-size: 1.8rem;
      margin-bottom: 0.5rem;
      color: var(--text-primary);
  }
  
  .welcome-screen p {
      color: var(--text-secondary);
      font-size: 1rem;
  }
  
  .chat-container:not(.is-welcome) .welcome-screen {
      display: none;
  }
  
  .message {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 12px;
      border-radius: 12px;
      line-height: 1.4;
  }
  .message-content {
      display: flex;
      flex-direction: column;
      flex: 1;
      overflow-wrap: break-word;
      min-width: 0;
  }
  .message-actions {
      display: flex;
      gap: 8px;
      padding-top: 8px;
      align-self: flex-end;
      opacity: 0;
      transition: opacity 0.2s;
  }
  .message:hover .message-actions {
      opacity: 1;
  }
  .ai-message .message-actions {
      align-self: flex-start;
  }
  .message-actions .action-btn {
      position: relative;
      font-size: 0.9rem;
      padding: 6px;
  }
  .message-actions .action-btn[data-tooltip]:hover::after {
      content: attr(data-tooltip);
      position: absolute;
      bottom: 100%;
      left: 50%;
      transform: translateX(-50%);
      background-color: var(--bg-dark-primary);
      color: var(--text-primary);
      padding: 4px 8px;
      border-radius: 4px;
      font-size: 0.8rem;
      white-space: nowrap;
      margin-bottom: 8px;
      box-shadow: var(--shadow-sm);
  }
  
  .edit-actions {
      display: flex;
      gap: 8px;
      margin-top: 8px;
  }
  .edit-actions button {
      padding: 6px 12px;
      border-radius: 6px;
      border: none;
      cursor: pointer;
      font-weight: 600;
      font-family: var(--font-family);
      transition: background-color 0.2s;
  }
  .save-btn {
      background-color: var(--accent-primary);
      color: white;
  }
  .save-btn:hover {
      background-color: var(--accent-secondary);
  }
  .cancel-btn {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-secondary);
  }
  .cancel-btn:hover {
      background-color: var(--border-color);
  }
  .message-content textarea {
      width: 100%;
      background-color: var(--bg-dark-secondary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      color: var(--text-primary);
      padding: 8px;
      font-family: var(--font-family);
      font-size: 1rem;
      resize: vertical;
  }
  
  .message-icon {
      font-size: 1rem;
      color: var(--accent-secondary);
      padding-top: 4px;
  }
  .ai-message {
      background: var(--ai-message-bg);
      margin-left: 60px;
      margin-right: 0;
  }
  .user-message {
      background: var(--user-message-bg);
      margin-right: 60px;
      margin-left: 8px;
  }
  .user-message .message-icon {
      color: var(--accent-primary);
  }
  
  .chat-input-area {
      padding-top: 16px;
      padding-left: 10px;
      padding-right: 10px;
      padding-block-end: 10px;
  }
  
  .input-wrapper {
      align-items: center;
      gap: 12px;
      background: var(--bg-dark-secondary);
      padding: 8px;
      border-radius: 12px;
      box-shadow: var(--shadow-sm);
  }
  
  .chat-form {
      flex-direction: column;
      position: relative;
  }
  
  #user-input {
      flex: 1;
      border: none;
      outline: none;
      padding: 12px;
      border-radius: 8px;
      background-color: var(--bg-dark-secondary);
      color: var(--text-primary);
      font-size: 1rem;
      line-height: 1.5;
      resize: none;
      max-height: 200px;
      overflow-y: auto;
      width: 100%;
      box-sizing: border-box;
  }
  
  .action-btn {
      background: none;
      border: none;
      color: var(--text-secondary);
      font-size: 1.2rem;
      cursor: pointer;
      padding: 8px;
      transition: color 0.2s;
      justify-content: center;
  }
  
  .action-btn:hover {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-primary);
  }
  
  #send-btn {
      background-color: var(--accent-primary);
      color: white;
      width: 32px;
      height: 32px;
      font-size: 1rem;
      border-radius: 6px;
      margin-left: auto;
  }
  
  #send-btn:hover {
      background-color: var(--accent-primary-hover);
  }
  
  .chat-form-actions {
      display: flex;
      align-items: center;
      gap: 4px;
      width: 100%;
  }
  
  .chat-form-actions-left {
      display: flex;
      gap: 4px;
  }
  
  .sidebar {
      background-color: var(--bg-dark-secondary);
      display: flex;
      flex-direction: column;
      width: 210px;
      transition: width 0.3s ease-in-out;
      position: relative;
      height: calc(100vh - 10px);
      margin: 0px 0 0px 0px;
      border-radius: 8px;
      z-index: 100;
  }
  
  .sidebar-content {
      flex-grow: 1;
      padding: 16px;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
  }
  
  .sidebar-footer {
      padding: 1rem;
      border-top: 1px solid var(--border-color);
  }
  
  .sidebar.collapsed {
      width: 80px;
  }
  
  .sidebar.collapsed .sidebar-link span,
  .sidebar.collapsed .history-title span {
      display: none;
  }
  
  .sidebar.collapsed .sidebar-link {
      justify-content: center;
  }
  
  .sidebar.collapsed .chat-history {
      display: none;
  }
  
  .sidebar-link {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 10px;
      text-decoration: none;
      color: var(--text-secondary);
      border-radius: 8px;
      transition: background-color 0.2s, color 0.2s;
      white-space: nowrap;
      overflow: hidden;
      font-size: 0.95rem;
      font-weight: 500;
  }
  
  .sidebar-link:hover {
      background: var(--bg-dark-tertiary);
      color: var(--text-primary);
  }
  
  .sidebar-link.active {
      background: var(--accent-primary);
      color: white;
  }
  
  .new-chat-btn {
      font-weight: 600;
      border: 1px solid var(--border-color);
  }
  
  .chat-history {
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid var(--border-color);
      flex-grow: 1;
      overflow-y: auto;
  }
  .chat-history ul {
      list-style: none;
  }
  .history-title {
      color: var(--text-secondary);
      font-size: 0.8rem;
      font-weight: 600;
      margin-bottom: 12px;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      padding: 0 12px;
  }
  
  #sidebar-toggle-btn {
      background: none;
      border: none;
      cursor: pointer;
      width: 100%;
  }
  
  .model-selector span {
      display: flex;
      flex: 1;
  }
  
  #model-select {
      width: 100%;
      background: transparent;
      border: none;
      outline: none;
      color: var(--text-primary);
      font-family: var(--font-family);
      font-size: 0.95rem;
      font-weight: 500;
  }
  
  #model-select option {
      background: var(--bg-dark-tertiary);
      border: none;
  }
  
  .mobile-header {
      display: none;
      align-items: center;
      justify-content: space-between;
      padding: 16px;
      background: var(--bg-dark-secondary);
  }
  
  .mobile-header h3 {
      font-size: 1.2rem;
  }
  
  #mobile-menu-btn {
      background: none;
      border: none;
      color: var(--text-primary);
      font-size: 1.4rem;
      cursor: pointer;
  }
  
  @media (max-width: 900px) {
      .chat-container {
          padding: 0;
      }
      .messages {
          border-radius: 0;
          margin: 0;
      }
      .chat-input-area {
          padding: 8px;
          padding-bottom: 8px;
      }
      .mobile-header {
          display: flex;
      }
      .sidebar {
          position: fixed;
          top: 0;
          right: 0;
          height: calc(100% - 5px);
          z-index: 1000;
          transform: translateX(calc(100% + 10px));
          width: 220px;
          border-radius: 8px;
          transition: transform 0.3s ease-in-out;
      }
      .sidebar.is-open {
          transform: translateX(0);
          box-shadow: var(--shadow-md);
      }
      .input-wrapper {
          padding: 12px;
      }
      #user-input {
          font-size: 0.8rem;
          flex: initial;
      }
      .chat-form {
          flex-direction: column;
          align-items: stretch;
      }
      .chat-form-actions {
          justify-content: space-between;
          padding-top: 8px;
      }
      .message-actions {
        opacity: 1;
      }
  }
  
  .modal-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0,0,0,0.6);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 2000;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  .modal-overlay.is-visible {
      opacity: 1;
      visibility: visible;
  }
  
  .modal-content {
      background: var(--bg-dark-secondary);
      padding: 16px;
      border-radius: 12px;
      box-shadow: var(--shadow-md);
      width: 95%;
      max-width: 600px;
      position: relative;
      text-align: center;
  }
  
  .modal-close-btn {
      position: absolute;
      top: 16px;
      right: 16px;
      background: none;
      border: none;
      color: var(--text-secondary);
      font-size: 1.5rem;
      cursor: pointer;
      transition: color 0.2s;
  }
  .modal-close-btn:hover {
      color: var(--text-primary);
  }
  
  .modal-content h2 {
      font-size: 1.5rem;
      margin-bottom: 8px;
  }
  .modal-content p {
      color: var(--text-secondary);
      margin-bottom: 24px;
  }
  
  .yandex-login-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      width: 100%;
      padding: 12px;
      border: 1px solid #ff0000;
      background-color: #ff0000;
      color: white;
      border-radius: 8px;
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: background-color 0.2s;
  }
  .yandex-login-btn:hover {
      background-color: #e60000;
  }
  .yandex-icon {
      color: #000;
      margin-right: 12px;
  }
  
  .subscription-view {
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 16px 16px;
      gap: 16px;
      text-align: center;
      color: var(--text-primary);
  }
  
  .subscription-view h2 {
      font-size: 1.75rem;
      color: var(--text-primary);
      font-weight: 600;
      margin-bottom: 0.75rem;
  }
  
  .subscription-subtitle {
      font-size: 1.1rem;
      color: var(--text-secondary);
      margin-bottom: 2rem;
      max-width: 400px;
  }
  
  .plans-container {
      display: flex;
      gap: 2rem;
      width: 100%;
      max-width: 1000px;
      justify-content: center;
      align-items: stretch;
  }
  
  .plan-card {
      background: var(--bg-dark-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 12px;
      padding: 1rem;
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
      transition: border-color 0.2s, box-shadow 0.2s;
      position: relative;
  }
  
  .plan-card:hover {
      border-color: var(--border-color-hover);
  }
  
  .plan-card.recommended {
      border-color: var(--accent-primary);
  }
  
  .recommended-badge {
      position: absolute;
      top: -15px;
      left: 50%;
      transform: translateX(-50%);
      background-color: var(--accent-primary);
      color: white;
      padding: 6px 12px;
      border-radius: 16px;
      font-size: 0.8rem;
      font-weight: bold;
  }
  
  .plan-card h3 {
      font-size: 1.2rem;
      font-weight: 600;
      margin-bottom: 0.75rem;
  }
  
  .plan-card .price {
      font-size: 2rem;
      font-weight: 600;
      margin-bottom: 1.5rem;
  }
  
  .plan-card ul {
      list-style: none;
      padding: 0;
      margin-bottom: 2rem;
      text-align: left;
      width: 100%;
      font-size: 0.95rem;
  }
  
  .plan-card ul li {
      margin-bottom: 1rem;
      display: flex;
      align-items: center;
      gap: 0.75rem;
  }
  
  .plan-btn {
      background-color: var(--accent-primary);
      color: white;
      border: none;
      padding: 0.8rem 1.5rem;
      border-radius: 8px;
      font-size: 1rem;
      font-weight: bold;
      cursor: pointer;
      transition: background-color 0.2s;
      width: 100%;
      margin-top: auto;
  }
  
  .plan-btn:hover {
      background-color: var(--accent-secondary);
  }
  
  .plan-btn:disabled {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-secondary);
      cursor: not-allowed;
      border: 1px solid var(--border-color);
  }
  
  @media (max-width: 768px) {
      .plans-container {
          flex-direction: column;
          align-items: stretch;
      }
  }
  
  @media (min-width: 901px) {
      .subscription-view {
          flex-grow: 1;
          justify-content: center;
      }

      .chat-container.is-welcome .messages {
          margin-top: 15vh;
      }

      .chat-container.is-welcome {
          display: flex;
      }
      .chat-container.is-welcome .input-wrapper {
          max-width: 768px;
          margin: 0 auto;
      }
      .chat-container.is-welcome::after {
          content: '';
          display: block;
          flex-grow: 1;
      }
  }
  
  /* AI Settings Modal Styles */
  .settings-form-container {
      margin-top: 24px;
      max-height: 60vh;
      overflow-y: auto;
      padding-right: 16px;
  }
  .form-group {
      margin-bottom: 10px;
      text-align: left;
  }
  .form-group h3 {
      font-size: 1.1rem;
      margin-bottom: 1rem;
      color: var(--text-primary);
  }
  .form-group label {
      color: var(--text-secondary);
      font-size: 0.9rem;
  }
  .form-group label:not(.checkbox-label) {
      display: block;
      margin-bottom: 10px;
  }
  .form-group input[type="text"],
  .form-group textarea {
      width: 100%;
      padding: 0.75rem;
      border-radius: 8px;
      border: 1px solid var(--border-color);
      background-color: var(--bg-dark-secondary);
      color: var(--text-primary);
      font-size: 1rem;
      transition: border-color 0.2s;
  }
  .form-group input[type="text"]:focus,
  .form-group textarea:focus {
      outline: none;
      border-color: var(--accent-primary);
  }
  .form-group textarea {
      resize: vertical;
  }
  .separator {
      border-bottom: 1px solid var(--border-color);
      margin: 2rem 0;
  }
  .checkbox-group {
      display: flex;
      flex-direction: column;
      gap: 12px;
      align-items: flex-start;
  }
  .checkbox-label {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      cursor: pointer;
      color: var(--text-primary);
  }
  .checkbox-label input[type="checkbox"] {
      appearance: none;
      -webkit-appearance: none;
      width: 20px;
      height: 20px;
      border-radius: 4px;
      border: 1px solid var(--border-color);
      background-color: var(--bg-dark-secondary);
      position: relative;
      cursor: pointer;
      transition: background-color 0.2s, border-color 0.2s;
      margin: 0;
      flex-shrink: 0;
  }
  .checkbox-label input[type="checkbox"]::before {
      content: "";
      width: 10px;
      height: 10px;
      clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
      transform: scale(0);
      transition: 120ms transform ease-in-out;
      background-color: white;
  }
  .checkbox-label input[type="checkbox"]:checked {
      background-color: var(--accent-primary);
      border-color: var(--accent-primary);
  }
  .checkbox-label input[type="checkbox"]:checked::before {
      transform: scale(1);
  }
  .checkbox-label:hover input[type="checkbox"]:not(:checked) {
      border-color: var(--text-secondary);
  }
  .form-actions {
      display: flex;
      justify-content: flex-end;
      gap: 12px;
      margin-top: 24px;
  }
  .btn-primary, .btn-secondary, .btn-danger {
      padding: 10px 16px;
      border: none;
      border-radius: 6px;
      font-size: 1rem;
      cursor: pointer;
      transition: background-color 0.2s;
      text-align: center;
  }
  .btn-primary {
      background-color: var(--accent-primary);
      color: white;
  }
  .btn-secondary {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-primary);
  }
  .btn-danger {
      background-color: #e53935;
      color: white;
  }
  .btn-danger:hover {
      background-color: #c62828;
  }
  #ai-settings-modal .modal-content {
      width: 100%;
      max-width: 700px;
  }
  
  /* --- Стили для полосы прокрутки (Webkit) --- */
  ::-webkit-scrollbar {
      width: 8px;
      height: 8px;
  }
  
  ::-webkit-scrollbar-track {
      background-color: var(--scrollbar-track);
  }
  
  ::-webkit-scrollbar-thumb {
      background-color: var(--scrollbar-thumb);
      border-radius: 4px;
  }
  
  ::-webkit-scrollbar-thumb:hover {
      background-color: var(--border-color);
  }
  
  /* Settings Modal */
  #settings-modal .modal-content {
      width: 80%;
      max-width: 960px;
      height: 70vh;
      padding: 0;
  }
  
  .settings-container {
      display: flex;
      height: 100%;
  }
  
  .settings-sidebar {
      width: 210px;
      background-color: var(--bg-dark-secondary);
      padding: 16px;
      border-right: 1px solid var(--border-color);
      flex-shrink: 0;
  }
  
  .settings-nav {
      display: flex;
      flex-direction: column;
      gap: 8px;
  }
  
  .settings-nav-link {
      padding: 8px 10px;
      border-radius: 6px;
      color: var(--text-secondary);
      text-decoration: none;
      font-weight: 500;
      transition: background-color 0.2s;
      text-align: left;
      display: flex;
      align-items: center;
      gap: 12px;
  }
  
  .settings-nav-link i {
      width: 16px;
      text-align: center;
  }
  
  .settings-nav-link:hover {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-primary);
  }
  
  .settings-nav-link.active {
      background-color: var(--bg-dark-tertiary);
      color: var(--text-primary);
  }
  
  .settings-main {
      padding: 16px 28px;
      flex-grow: 1;
      overflow-y: auto;
  }
  
  .settings-panel {
      display: none;
  }
  
  .settings-panel.active {
      display: block;
  }
  
  .settings-panel h2 {
      margin-top: 0;
      margin-bottom: 24px;
  }
  
  .settings-panel .form-group,
  .settings-panel .form-group-row {
      margin-bottom: 24px;
  }
  
  .settings-panel select {
      width: 100%;
      padding: 8px;
      background-color: var(--bg-dark-tertiary);
      color: var(--text-primary);
      border: 1px solid var(--border-color);
      border-radius: 6px;
  }
  
  .voice-control {
      display: flex;
      align-items: center;
      gap: 16px;
  }
  
  .voice-control .action-btn {
      flex-shrink: 0;
  }
  
  .form-group-row {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 12px 0;
      border-bottom: 1px solid var(--border-color);
  }
  
  .toggle-group {
      display: flex;
      align-items: center;
      gap: 10px;
  }
  
  .toggle-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
  }
  
  .toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
  }
  
  .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--bg-dark-tertiary);
    transition: .4s;
    border-radius: 24px;
  }
  
  .slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
  }
  
  input:checked + .slider {
    background-color: var(--accent-primary);
  }
  
  input:checked + .slider:before {
    transform: translateX(20px);
  }
  
  .settings-main .form-group-row button {
      min-width: 120px;
  }
  
  .toggle-label {
      color: var(--text-primary);
  }
  
  @media (max-width: 768px) {
      #settings-modal .modal-content {
          width: 100%;
          height: 100%;
          border-radius: 0;
          padding: 24px;
      }
      .settings-container {
          flex-direction: column;
      }
      .settings-sidebar {
          width: 100%;
          border-right: none;
          border-bottom: 1px solid var(--border-color);
          padding: 16px;
      }
      .settings-nav {
          flex-direction: row;
          overflow-x: auto;
          flex-wrap: wrap;
          justify-content: flex-start;
      }
      .settings-main {
          padding: 24px;
      }
  }
  
  .multi-toggle-group {
      display: flex;
      flex-direction: column;
      gap: 28px;
      align-items: flex-end;
  }
  
  #help-dropdown-btn {
      justify-content: space-between;
  }
  
  .nested-dropdown-icon {
      transition: transform 0.2s;
  }
  
  .profile-dropdown-submenu {
      display: none;
      position: absolute;
      top: 0;
      right: 100%;
      margin-right: 8px;
      width: max-content;
      background: var(--bg-dark-secondary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 8px 0;
      z-index: 10;
  }
  
  .profile-dropdown-submenu.is-open {
      display: block;
  }
  
  .profile-dropdown-submenu .sidebar-link {
      gap: 12px;
      padding: 8px 12px;
  }
  .profile-dropdown-submenu .sidebar-link i {
       width: 16px;
      text-align: center;
  }
  
/* Edit Modal styles */
#edit-modal .modal-content {
    max-width: 1000px;
    width: 90%;
    height: 80vh;
    display: flex;
    flex-direction: column;
    text-align: left;
}

#edit-modal .edit-modal-body {
    flex-grow: 1;
    display: flex;
    margin-top: 1rem;
    overflow: hidden;
}

#edit-modal-editor-container {
    flex-grow: 1;
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden; /* Important for Monaco Editor */
}

#edit-modal-editor-container::-webkit-scrollbar {
    display: none;
}

#edit-modal-textarea {
    flex-grow: 1;
    width: 100%;
    resize: none;
    background-color: var(--bg-dark-primary) !important;
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: 1rem;
    padding: 1rem;
    border-radius: 8px;
    display: flex; /* Ensure flex properties apply */
}

#edit-modal .form-actions {
    justify-content: flex-end;
    margin-top: 1rem;
}

#edit-modal .form-actions button {
    min-width: 100px;
}

/* Modal styles for Contacts */
.contacts-modal {
    display: none;
    position: fixed;
    z-index: 1050; /* Higher z-index to appear above other modals */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.6);
}

.contacts-modal-content {
    background-color: #27293d; /* Match theme */
    color: #fff;
    margin: 10% auto;
    padding: 25px;
    border: 1px solid #444;
    width: 90%;
    max-width: 700px;
    border-radius: 10px;
    position: relative;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5);
    animation: fadeIn 0.3s;
}

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

.contacts-modal-close-btn {
    color: #aaa;
    position: absolute;
    top: 15px;
    right: 25px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.contacts-modal-close-btn:hover,
.contacts-modal-close-btn:focus {
    color: #fff;
    text-decoration: none;
}

.contacts-modal-content h2 {
    margin-top: 0;
    color: #fff;
    border-bottom: 1px solid #444;
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.contact-info p {
    margin-bottom: 12px;
    line-height: 1.7;
    font-size: 0.95rem;
}

.contact-info strong {
    color: #a9a9b3;
    display: inline-block;
    width: 200px;
}

.contact-info hr {
    border-top: 1px solid #555;
    margin: 25px 0;
}
  
.profile-wrapper {
    position: relative;
    width: 100%;
}

.profile-wrapper .sidebar-link {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    text-decoration: none;
    color: var(--text-secondary);
    transition: all 0.2s ease;
}

.profile-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--bg-dark-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    margin-top: 4px;
    padding: 4px 0;
    display: none;
    flex-direction: column;
    z-index: 1000;
}

.profile-dropdown.is-open {
    display: flex;
}

.sidebar-link.user-profile,
.profile-dropdown .sidebar-link {
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.5;
    cursor: pointer;
    transition: all 0.2s ease;
}

.dropdown-icon {
    transition: transform 0.2s ease;
}

.profile-dropdown-submenu {
    display: none;
    padding-left: 12px;
}

.profile-dropdown-submenu.is-open {
    display: flex;
    flex-direction: column;
}

.sidebar-link-with-dropdown {
    position: relative;
}

.nested-dropdown-icon {
    margin-left: auto;
    transition: transform 0.2s ease;
}
