(function () {
  if (window.__GCX_DISTRIBUTOR_LOADED__) return;
  window.__GCX_DISTRIBUTOR_LOADED__ = true;

  var doc = document;
  var root = doc.documentElement;
  if (root.classList.contains('gcx-theme-entry-fallback') || root.classList.contains('gcx-theme-entry-failed')) return;

  var path = String(window.location.pathname || '').replace(/\/$/, '');
  var params = new URLSearchParams(window.location.search || '');
  var chromeAssets = {
    logo: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/200/h/bd65192fe6a89f215ab195d2751ea18f.png',
    search: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/290/h/0b99fdf74163bb23e4ae5cf1ca608e38.png',
    coinsPill: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/245/h/2be446e9b9806eec13077ed0dea496a1.png',
    wallet: 'data:image/svg+xml,%3Csvg%20width%3D%2241%22%20height%3D%2242%22%20viewBox%3D%220%200%2041%2042%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cellipse%20cx%3D%2220.3298%22%20cy%3D%2221%22%20rx%3D%2220.3298%22%20ry%3D%2221%22%20fill%3D%22url(%23paint0_linear_192_7169)%22%2F%3E%0A%3Cpath%20d%3D%22M20.1648%2021.1638L20.3793%2021.2385C23.9109%2022.454%2028.1619%2021.2916%2031.1628%2018.2908M20.1648%2021.1638L19.5603%2020.9569C16.2648%2019.8215%2012.2965%2020.907%209.49609%2023.7074M20.1648%2021.1638L20.09%2020.9493C18.8745%2017.4176%2020.0369%2013.1666%2023.0378%2010.1658M20.1648%2021.1638L20.3717%2021.7683C21.507%2025.0627%2020.4215%2029.032%2017.6211%2031.8324M18.1628%2024.2491L20.1593%2026.3313M14.6582%2020.829L15.9961%2022.1691M20.1604%2015.3279L22.4961%2017.7491M24.6628%2019.9158L25.6616%2020.829M11.6628%2022.0824L15.4544%2025.8741M28.7556%2019.7966L24.9639%2016.0049M17.4098%2027.706L19.1291%2029.4253M23.132%2014.0517L21.4128%2012.3324%22%20stroke%3D%22url(%23paint1_linear_192_7169)%22%20stroke-width%3D%221.875%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3Cdefs%3E%0A%3ClinearGradient%20id%3D%22paint0_linear_192_7169%22%20x1%3D%229.96116%22%20y1%3D%223.99443e-07%22%20x2%3D%2227.5568%22%20y2%3D%2242.5806%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22white%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23D4E1E9%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3ClinearGradient%20id%3D%22paint1_linear_192_7169%22%20x1%3D%2229.066%22%20y1%3D%2228.3378%22%20x2%3D%2214.3886%22%20y2%3D%2212.9615%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23A6BAC3%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23C6DCE9%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A',
    notification: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/219/h/9d63737d6cf2e58cbad3a9965eb65709.png',
    calendar: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/36/h/2fcb34c17ab980b71f39044128b62620.png',
    nav: {
      home: {
        default: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/173/h/b22ef3623cb19ee48e79897fb62577a8.png',
        active: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/94/h/c2169516af805e345b47ed307d055e4a.png'
      },
      list: {
        default: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/394/h/83de657f3e948305d11beeecbde35ced.png',
        active: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/192/h/74054707ea0c3cfab6a4d7477c4755bd.png'
      },
      audio: {
        default: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/51/h/87c5e355350e2812f560c1b551a7e78b.png',
        active: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/371/h/766f261ab3bb2ad2d12ece98b4bda1e6.png'
      },
      profile: {
        default: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/198/h/c3180e63b7ff9e3db89225fc4137c32c.png',
        active: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/sc/59/h/c534c490249fdfd09549171e5b90735a.png'
      }
    },
    quick: {
      progress: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/h/7507b9fca771df1fd5fd8023dbe1e3de.svg',
      learn: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/h/19d35211bdd933aea5fc2359f353da60.svg',
      chats: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/h/b243092c2433f9868441bff8fff26e43.svg',
      help: 'https://fs.getcourse.ru/fileservice/file/download/a/947755/h/abdf3101559888ef80fe6622345ff1dc.svg'
    }
  };

  var projectUrls = window.GCX_PROJECT_URLS || {
    lab: '/laboratory',
    learn: '/teach/control/stream',
    audio: '/teach/control/stream/view/id/935608172',
    profile: '/profile',
    calendar: '/schedule',
    notifications: '/notifications/notifications/all',
    payments: '/sales/control/userProduct/my',
    chats: '/chats',
    help: '/sup',
    logout: '/user/my/logout',
    search: '/pl/search/search-lesson',
    edelsteins: '/edelsteins'
  };
  window.GCX_PROJECT_URLS = projectUrls;

  var menuAliases = {
    learn: ['trainings'],
    calendar: ['schedule'],
    payments: ['my_deals'],
    chats: ['chatium_chats_materials'],
    help: ['help'],
    logout: ['logout'],
    search: ['search'],
    audio: ['audio'],
    profile: ['profile'],
    notifications: ['notifications']
  };

  function setImage(img, src, alt) {
    if (!img) return;
    img.src = src;
    img.alt = alt || '';
    img.loading = 'lazy';
    img.decoding = 'async';
  }

  function walkMenu(callback) {
    function visit(item) {
      if (!item) return null;
      if (callback(item)) return item;
      var children = item.subitems || [];
      for (var i = 0; i < children.length; i += 1) {
        var found = visit(children[i]);
        if (found) return found;
      }
      return null;
    }
    var menu = window.gcAccountUserMenu || {};
    var items = (menu.items || []).concat(menu.navMenuItems ? [menu.navMenuItems] : []);
    for (var i = 0; i < items.length; i += 1) {
      var found = visit(items[i]);
      if (found) return found;
    }
    return null;
  }

  function menuUrl(id) {
    var aliases = [id].concat(menuAliases[id] || []);
    for (var i = 0; i < aliases.length; i += 1) {
      var item = walkMenu(function (candidate) { return candidate.id === aliases[i]; });
      if (item && item.url) return item.url;
    }
    return null;
  }

  function resolveUrl(id) {
    return projectUrls[id] || menuUrl(id) || '#';
  }

  function avatarSrc() {
    var html = window.accountUserThumbnail || '';
    var box = doc.createElement('div');
    box.innerHTML = html;
    var img = box.querySelector('img');
    if (img && img.getAttribute('src')) return img.getAttribute('src');
    var profile = walkMenu(function (candidate) { return candidate.id === 'profile' && candidate.iconUrl; });
    return profile && profile.iconUrl ? profile.iconUrl : '/public/img/default_profile_50.png';
  }

  function linkEl(item, className) {
    var a = doc.createElement('a');
    a.className = className + ' gcx-nav__link--' + item.id + (item.active ? ' is-active is-state-active' : '');
    a.href = item.href || '#';
    a.title = item.label;
    if (item.disabled) {
      a.setAttribute('aria-disabled', 'true');
      a.addEventListener('click', function (event) { event.preventDefault(); });
    }
    if (item.icon) {
      var icon = doc.createElement('span');
      icon.className = 'gcx-nav__icon';
      var defaultImg = doc.createElement('img');
      defaultImg.className = 'gcx-nav__icon-img gcx-nav__icon-img--default';
      setImage(defaultImg, item.icon.default || item.icon, '');
      var activeImg = doc.createElement('img');
      activeImg.className = 'gcx-nav__icon-img gcx-nav__icon-img--active';
      setImage(activeImg, item.icon.active || item.icon.default || item.icon, '');
      icon.appendChild(defaultImg);
      icon.appendChild(activeImg);
      a.appendChild(icon);
    }
    var label = doc.createElement('span');
    label.className = 'gcx-nav__label';
    label.textContent = item.label;
    a.appendChild(label);
    return a;
  }

  function mountChrome(options) {
    options = options || {};
    if (!doc.body) return;

    Array.prototype.slice.call(doc.querySelectorAll([
      '.gcx-sidebar',
      '.gcx-topbar',
      '.gcx-profile-top-logo',
      '.gcx-payments-back',
      '.gcx-notifications-back',
      '.gcx-edel-back'
    ].join(','))).forEach(function (node) {
      if (node && node.parentNode) node.parentNode.removeChild(node);
    });

    var active = options.active || null;
    var pageName = options.page || active || null;
    var labUrl = resolveUrl('lab');
    var audioUrl = resolveUrl('audio');
    var mainItems = [
      { id: 'lab', label: 'Моя лаборатория', href: labUrl, icon: chromeAssets.nav.home, active: active === 'lab' },
      { id: 'learn', label: 'Обучения', href: resolveUrl('learn'), icon: chromeAssets.nav.list, active: active === 'learn' },
      { id: 'audio', label: 'Аудиотехники', href: audioUrl, icon: chromeAssets.nav.audio, active: active === 'audio', disabled: audioUrl === '#audio' },
      { id: 'profile', label: 'Личный кабинет', href: resolveUrl('profile'), icon: chromeAssets.nav.profile, active: active === 'profile' }
    ];
    var bottomItems = [
      { id: 'calendar', label: 'Календарь', href: resolveUrl('calendar'), active: active === 'calendar' },
      { id: 'notifications', label: 'Уведомления', href: resolveUrl('notifications'), active: active === 'notifications' },
      { id: 'payments', label: 'История оплат', href: resolveUrl('payments'), active: active === 'payments' },
      { id: 'chats', label: 'Важные чаты', href: resolveUrl('chats'), active: active === 'chats' },
      { id: 'help', label: 'Помощь', href: resolveUrl('help'), active: active === 'help' }
    ];

    var aside = doc.createElement('aside');
    aside.className = 'gcx-sidebar';
    aside.setAttribute('aria-label', 'Навигация');

    var logo = doc.createElement('a');
    logo.className = 'gcx-logo';
    logo.href = labUrl;
    var logoImg = doc.createElement('img');
    setImage(logoImg, chromeAssets.logo, 'Edelshteyn');
    logo.appendChild(logoImg);
    aside.appendChild(logo);

    var nav = doc.createElement('nav');
    nav.className = 'gcx-nav gcx-nav--main';
    mainItems.forEach(function (item) { nav.appendChild(linkEl(item, 'gcx-nav__link')); });
    aside.appendChild(nav);

    var secondary = doc.createElement('nav');
    secondary.className = 'gcx-nav gcx-nav--secondary';
    bottomItems.forEach(function (item) { secondary.appendChild(linkEl(item, 'gcx-nav__link gcx-nav__link--plain')); });
    aside.appendChild(secondary);

    var logout = doc.createElement('a');
    logout.className = 'gcx-logout';
    logout.href = resolveUrl('logout');
    logout.textContent = 'ВЫЙТИ';
    aside.appendChild(logout);
    doc.body.appendChild(aside);

    var topLogo = doc.createElement('a');
    topLogo.className = 'gcx-profile-top-logo';
    topLogo.href = labUrl;
    var topLogoImg = doc.createElement('img');
    setImage(topLogoImg, chromeAssets.logo, 'Edelshteyn');
    topLogo.appendChild(topLogoImg);

    var backClass = options.backClass || ({
      payments: 'gcx-payments-back',
      notifications: 'gcx-notifications-back',
      edelsteins: 'gcx-edel-back'
    })[pageName];
    if (backClass) {
      var back = doc.createElement('a');
      back.className = backClass;
      back.href = resolveUrl('profile');
      back.setAttribute('aria-label', 'Назад');
      doc.body.appendChild(back);
    }

    var topbar = doc.createElement('div');
    topbar.className = 'gcx-topbar';

    var search = doc.createElement('a');
    search.className = 'gcx-search';
    search.href = resolveUrl('search');
    var searchIcon = doc.createElement('img');
    setImage(searchIcon, chromeAssets.search, '');
    search.appendChild(searchIcon);
    var searchLabel = doc.createElement('span');
    searchLabel.className = 'gcx-search__label';
    searchLabel.textContent = 'Поиск';
    search.appendChild(searchLabel);
    topbar.appendChild(search);

    var profilePanel = doc.createElement('div');
    profilePanel.className = 'gcx-profile-panel';

    var profile = doc.createElement('a');
    profile.className = 'gcx-user';
    profile.href = resolveUrl('profile');
    var profileImg = doc.createElement('img');
    setImage(profileImg, avatarSrc(), window.accountSafeUserName || '');
    profile.appendChild(profileImg);
    profilePanel.appendChild(profile);

    var coins = doc.createElement('a');
    coins.className = 'gcx-coins';
    coins.href = resolveUrl('edelsteins');
    var coinsImg = doc.createElement('img');
    setImage(coinsImg, chromeAssets.coinsPill, '');
    coins.appendChild(coinsImg);
    profilePanel.appendChild(coins);
    topbar.appendChild(profilePanel);

    var quickActions = doc.createElement('nav');
    quickActions.className = 'gcx-quick-actions';
    quickActions.setAttribute('aria-label', 'Быстрые действия');
    [
      { id: 'notifications', label: 'Уведомления', href: resolveUrl('notifications'), icon: chromeAssets.notification },
      { id: 'calendar', label: 'Календарь', href: resolveUrl('calendar'), icon: chromeAssets.calendar }
    ].forEach(function (item) {
      var action = doc.createElement('a');
      action.className = 'gcx-quick-actions__link gcx-quick-actions__link--' + item.id + (active === item.id ? ' is-active is-state-active' : '');
      action.href = item.href;
      action.title = item.label;
      var icon = doc.createElement('img');
      setImage(icon, item.icon, item.label);
      action.appendChild(icon);
      quickActions.appendChild(action);
    });
    topbar.appendChild(quickActions);
    doc.body.appendChild(topbar);
    doc.body.appendChild(topLogo);

    root.setAttribute('data-gcx-active-menu', active || '');
  }

  window.GCXChrome = {
    assets: chromeAssets,
    urls: projectUrls,
    resolveUrl: resolveUrl,
    avatarSrc: avatarSrc,
    setImage: setImage,
    mount: mountChrome
  };

  function routeChrome(routeName) {
    var activeByRoute = {
      laboratory: 'lab',
      profile: 'profile',
      payments: 'payments',
      notifications: 'notifications',
      help: 'help',
      chats: 'chats',
      schedule: 'calendar'
    };
    if (!routeName || routeName === 'login' || routeName === 'trainings') return null;
    return { page: routeName, active: activeByRoute[routeName] || null };
  }

  var trainingsRoute = {
    name: 'trainings',
    className: 'gcx-stream-page',
    styles: ['/pl/layout/94031/2/trainings.css?v=stream-route-20260620-5'],
    scripts: ['/pl/layout/94031/3/trainings.js?v=stream-route-20260620-5']
  };
  var routes = {
    '': trainingsRoute,
    '/teach': trainingsRoute,
    '/teach/control': trainingsRoute,
    '/teach/control/stream': trainingsRoute,
    '/teach/control/stream/index': trainingsRoute,
    '/cms/system/login': {
      name: 'login',
      className: 'gcx-login-page',
      styles: ['/pl/layout/94031/9/page-login.css?v=20260620-0415'],
      scripts: ['/pl/layout/94031/10/page-login.js?v=20260620-0415']
    },
    '/profile': {
      name: 'profile',
      className: 'gcx-profile-page',
      styles: ['/pl/layout/94031/11/page-profile.css?v=20260620-0140'],
      scripts: ['/pl/layout/94031/12/page-profile.js?v=20260621-shared-chrome-1']
    },
    '/laboratory': {
      name: 'laboratory',
      className: 'gcx-lab-page',
      styles: ['/pl/layout/94031/13/page-lab.css?v=20260620-0140'],
      scripts: ['/pl/layout/94031/14/page-lab.js?v=20260621-shared-chrome-1']
    },
    '/edelsteins': {
      name: 'edelsteins',
      className: 'gcx-edel-page',
      styles: ['/pl/layout/94031/15/page-edelsteins.css?v=20260620-0140'],
      scripts: ['/pl/layout/94031/16/page-edelsteins.js?v=20260621-shared-chrome-1']
    },
    '/sup': {
      name: 'help',
      className: 'gcx-help-page',
      styles: ['/pl/layout/94031/17/page-help.css?v=20260620-0032'],
      scripts: ['/pl/layout/94031/18/page-help.js?v=20260620-0031']
    },
    '/chats': {
      name: 'chats',
      className: 'gcx-chats-page',
      styles: ['/pl/layout/94031/19/page-chats.css?v=20260620-0031'],
      scripts: ['/pl/layout/94031/20/page-chats.js?v=20260620-0031']
    },
    '/schedule': {
      name: 'schedule',
      className: 'gcx-schedule-page',
      styles: ['/pl/layout/94031/21/page-schedule.css?v=20260620-schedule-0020'],
      scripts: ['/pl/layout/94031/22/page-schedule.js?v=20260620-schedule-0014']
    },
    '/sales/control/userProduct/my': {
      name: 'payments',
      className: 'gcx-payments-page',
      styles: ['/pl/layout/94031/25/page-payments.css?v=20260620-1950'],
      scripts: ['/pl/layout/94031/26/page-payments.js?v=20260621-shared-chrome-1']
    },
    '/notifications/notifications/all': {
      name: 'notifications',
      className: 'gcx-notifications-page',
      styles: ['/pl/layout/94031/27/page-notifications.css?v=20260621-0045'],
      scripts: ['/pl/layout/94031/28/page-notifications.js?v=20260621-shared-chrome-1']
    }
  };
  var route = routes[path];
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4623052') {
    route = routes['/sup'];
  }
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4623108') {
    route = routes['/chats'];
  }
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4621467') {
    route = routes['/profile'];
  }
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4622684') {
    route = routes['/laboratory'];
  }
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4623077') {
    route = routes['/edelsteins'];
  }
  if (!route && path === '/pl/cms/page/view' && params.get('id') === '4623121') {
    route = routes['/schedule'];
  }

  function normalizeViewport() {
    var content = 'width=device-width, initial-scale=1.0, viewport-fit=cover';
    var metas = doc.querySelectorAll('meta[name="viewport"]');
    var meta = metas[0];
    if (!meta) {
      meta = doc.createElement('meta');
      meta.name = 'viewport';
      doc.head.insertBefore(meta, doc.head.firstChild || null);
    }
    meta.setAttribute('content', content);
    for (var i = 1; i < metas.length; i += 1) {
      metas[i].parentNode.removeChild(metas[i]);
    }
  }

  function hasAsset(selector, value) {
    return !!doc.querySelector(selector + '[' + value.type + '="' + value.url + '"]');
  }

  function loadStyle(url) {
    if (hasAsset('link[rel="stylesheet"]', { type: 'href', url: url })) return Promise.resolve();
    return new Promise(function (resolve, reject) {
      var link = doc.createElement('link');
      link.rel = 'stylesheet';
      link.href = url;
      if ('fetchPriority' in link) link.fetchPriority = 'high';
      link.onload = resolve;
      link.onerror = reject;
      doc.head.appendChild(link);
    });
  }

  function loadScript(url) {
    if (hasAsset('script', { type: 'src', url: url })) return Promise.resolve();
    return new Promise(function (resolve, reject) {
      var script = doc.createElement('script');
      script.src = url;
      script.defer = true;
      if ('fetchPriority' in script) script.fetchPriority = 'high';
      script.onload = resolve;
      script.onerror = reject;
      doc.head.appendChild(script);
    });
  }

  var finished = false;
  var routeFallbackTimer = null;

  function finish(status) {
    if (finished) return;
    finished = true;
    if (routeFallbackTimer) window.clearTimeout(routeFallbackTimer);
    root.classList.remove('gcx-loading');
    root.classList.add('gcx-ready');
    if (status === 'failed') root.classList.add('gcx-failed');
    try {
      doc.dispatchEvent(new CustomEvent('gcx-theme-ready', {
        detail: { route: route ? route.name : null, status: status || 'ready' }
      }));
    } catch (error) {}
  }

  routeFallbackTimer = window.setTimeout(function () {
    if (!root.classList.contains('gcx-ready')) finish('failed');
  }, 12000);

  if (!route) {
    finish('ready');
    return;
  }

  normalizeViewport();
  root.classList.add('gcx-loading', route.className);
  Promise.all([].concat(
    route.styles.map(loadStyle),
    route.scripts.map(loadScript)
  )).then(function () {
    if (finished) return;
    var chrome = routeChrome(route.name);
    if (chrome) mountChrome(chrome);
    finish('ready');
  }, function () {
    finish('failed');
  });
})();
