/* Гостевой режим кабинета: незалогиненного пускаем в НАСТОЯЩИЙ кабинет
   (как ChatGPT пускает в чат), а на первом же клике поднимаем регистрацию.
   Здесь только два элемента поверх обычного кабинета — верхняя плашка и
   модалка входа; сам кабинет своих стилей не меняет. */

/* ─ плашка «вы в демо-режиме» ─ */
.cab-guest-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 11px 14px;
  margin: 0 0 14px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--accent, #0d9488) 22%, transparent);
  background: var(--accent-soft, rgba(13, 148, 136, 0.12));
  font: 400 13.5px/1.45 'DM Sans', system-ui, sans-serif;
  color: var(--text, #1e293b);
}
.cab-guest-bar__dot {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent, #0d9488);
}
.cab-guest-bar b { font-weight: 600; }
.cab-guest-bar__cta {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 9px 18px;
  border-radius: 10px;
  border: none;
  background: var(--accent, #0d9488);
  color: #fff;
  font: 600 14px/1 'DM Sans', system-ui, sans-serif;
  cursor: pointer;
}
.cab-guest-bar__cta:hover { background: var(--accent-hover, #0f766e); }

/* ─ модалка входа: внутрь переезжает существующий #loginBlock ─ */
#guestAuthModal .modal-card {
  max-width: 520px;
  width: 100%;
  padding: 8px 8px 18px;
}
#guestAuthModal #loginBlock { display: block; }
#guestAuthModal #loginBlock .login-hero { padding: 20px 16px 14px; }
#guestAuthModal #loginBlock .login-hero h1 { font-size: clamp(24px, 3.4vw, 30px); }
/* Вход по паролю в модалке НЕ прячем: на рабочих компьютерах соцсети часто
   закрыты, и это единственный способ войти (вопрос в чате «Наследия» 10.09). */
#guestAuthModal .modal-card { max-height: calc(100vh - 32px); overflow-y: auto; }

.cab-guest-why {
  margin: 0 auto 14px;
  max-width: 440px;
  padding: 0 14px;
  text-align: center;
  font: 400 13.5px/1.5 'DM Sans', system-ui, sans-serif;
  color: var(--text-secondary, #4a5568);
}

/* Гостю нечего показывать в «моих» счётчиках — прячем то, что без данных
   выглядит как сломанный виджет, а не как пустое состояние. Лига, повторение и
   дерево навыков в этот список НЕ входят: их панели заполняет cabinet_guest.js
   объяснением, что человек получит после входа. */
body.cab-guest #streakBlock,
body.cab-guest #spinWheelBlock,
body.cab-guest #contactRequestBlock,
body.cab-guest #bugReportPopup { display: none !important; }

/* ─ гостевое содержимое быстрых панелей (лига / повторение / навыки) ─ */
.cab-guest-pane { padding: 4px 2px 2px; }
.cab-guest-pane__title {
  margin: 0 0 6px;
  font: 600 16px/1.25 'DM Sans', system-ui, sans-serif;
  color: var(--text, #1e293b);
}
.cab-guest-pane__lead {
  margin: 0 0 12px;
  font: 400 13.5px/1.5 'DM Sans', system-ui, sans-serif;
  color: var(--text-secondary, #4a5568);
}
.cab-guest-pane__facts {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  gap: 8px;
}
.cab-guest-pane__facts li {
  position: relative;
  padding-left: 20px;
  font: 400 13.5px/1.45 'DM Sans', system-ui, sans-serif;
  color: var(--text, #1e293b);
}
.cab-guest-pane__facts li::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent, #0d9488);
}
.cab-guest-pane__facts b { font-weight: 600; }
.cab-guest-pane__cta {
  width: 100%;
  padding: 10px 16px;
  border-radius: 11px;
  border: 1.5px solid color-mix(in srgb, var(--accent, #0d9488) 35%, transparent);
  background: var(--surface, #fff);
  color: var(--accent, #0d9488);
  font: 600 14px/1 'DM Sans', system-ui, sans-serif;
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
}
.cab-guest-pane__cta:hover { background: var(--accent, #0d9488); color: #fff; }

@media (max-width: 640px) {
  .cab-guest-bar { padding: 10px 12px; font-size: 13px; }
  .cab-guest-bar__cta { margin-left: 0; width: 100%; }
}

/* «Курс ЭКГ» некупленный в «Моих материалах» читается как уже свой. Гостю его
   место — каталог, где он с ценой и кнопкой (на бэке доступа всё равно нет:
   /teach/api/ecg-course отдаёт access:false, а строку рисует ecg_course_card.js,
   если курс открыт команде по _is_team). */
body.cab-guest .ecgc-row { display: none !important; }

/* Гостю нечего «выходить» — кнопка ведёт в никуда и пугает. */
body.cab-guest #btnLogout { display: none !important; }

/* Блоки, которые у гостя показывают не пустое состояние, а ошибку загрузки
   (данные приватные, API честно отвечает 401): «План не загрузился»,
   «Не удалось загрузить таблицу лиги» и т.п. Пустой кабинет — нормально,
   кабинет со словом «ошибка» на первом экране — нет. */
body.cab-guest #planSection,
body.cab-guest #v1IslandPlan { display: none !important; }
