/* Общие правила всех страниц (главная и приложение преподавателя, квесты, экраны проектора, «Git», «Кластер», мессенджер,
   колокольчик, презентации, 3D-мир).
   1) Код без лигатур: >=, !==, =>, /= и т. п. показываются так, как их набирают, а не склеенными в один значок
      (шрифты вроде Fira Code и JetBrains Mono склеивают их по умолчанию).
   2) Скроллбар: тонкий бегунок со скруглением на прозрачной дорожке. Основные прокручиваемые панели держат место
      под полосу (scrollbar-gutter: stable) — когда прокрутка появляется, содержимое не сужается и не прыгает.
      Квест может перекрасить бегунок: --sb-thumb / --sb-thumb-hover. */
*, *::before, *::after { font-variant-ligatures: none !important; } /* !important: сокращение font: в стилях квеста иначе возвращает лигатуры */
:root { --sb-thumb: rgba(139, 148, 168, .38); --sb-thumb-hover: rgba(139, 148, 168, .62); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { min-height: 32px; min-width: 32px; border: 2px solid transparent; border-radius: 99px; background: var(--sb-thumb) padding-box; }
::-webkit-scrollbar-thumb:hover { background: var(--sb-thumb-hover) padding-box; }
::-webkit-scrollbar-button { display: none; width: 0; height: 0; }

/* Firefox: своих ::-webkit-scrollbar нет — тонкая полоса тех же цветов */
@supports not selector(::-webkit-scrollbar) {
  * { scrollbar-width: thin; scrollbar-color: var(--sb-thumb) transparent; }
}

/* место под полосу у прокручиваемых панелей */
body.hb-home .hb-center, body.hb-home .hb-grid, .hb-tapp > .tv, .hb-admin-main .hb-table-wrap, .hb-admin-aside,
#main .mission, #main .feed-box, #main .city-box, #main .side > .box, #main .bench .verify .checks,
.kb-toc, .kb-scroll, .editor, .console, .console-pane, .modal-code, .modal-progress,
body.board .side-col > .box, body.board .board-layout > .city-box, body.board .feed,
.kc-side, .kc-list, .kc-picker, .kc-emo-grid, .kn-list, .pz-menu, .pc-list,
.g-klist, .g-kcol-body, .g-kdetail, .g-pr-list, .g-pr-detail, .g-pr-detail > .g-pr-card, .g-pr-detail > .g-pr-pane,
.g-graph, .g-board-view, .g-board-side > .g-box, .g-editor, .g-code, .g-console, .g-modal-card,
.w-choose, .w-code, .w-console, .w-wardrobe, .w-tpanel, .w-prog,
.cl-spane, .cl-files, .cl-ed-problems, .cl-oyaml, .cl-modal-card, .cl-feedlist, .cb-legend, .ct, .ce-scroll,
.ar-spane, .ar-modal-card, .ar-feedlist, .ae-pal, .am-legend { scrollbar-gutter: stable; }

/* Номера строк общих редакторов квестов и Git (Q.stackEditor). Прокрутка общая с кодом. */
.numbered-editor > pre, .numbered-editor > textarea { padding-left: calc(var(--editor-padding-left) + var(--editor-gutter-width)); }
.numbered-editor > .editor-gutter { position: absolute; top: 0; left: 0; width: var(--editor-gutter-width); min-height: 100%; box-sizing: border-box; border-right: 1px solid var(--line); background: rgba(127, 127, 127, .05); color: var(--muted, var(--dim, #8b93a7)); pointer-events: none; user-select: none; }
.numbered-editor .editor-line-number { display: inline-block; position: relative; width: 0; height: 0; vertical-align: top; pointer-events: none; user-select: none; }
.numbered-editor .editor-line-number::before { content: attr(data-line); position: absolute; top: 0; right: calc(var(--editor-padding-left) + 10px); width: calc(var(--editor-gutter-width) - 10px); color: var(--muted, var(--dim, #8b93a7)); font: inherit; font-weight: 400; font-style: normal; line-height: inherit; text-align: right; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
