{
 "id": "digitable-chat",
 "version": "0.1.0",
 "shared": [],
 "palettes": [
  {
   "id": "carbon",
   "label": "Carbon",
   "files": [
    {
     "name": "digitable-focus-carbon.css",
     "path": "digitable-focus-carbon.css",
     "lang": "css",
     "bytes": 12795,
     "lines": 515,
     "text": "/* Digitable Focus Carbon for Digitable Chat — Digitable Workbench 0.1.0 */\n\n/*\n  1. Токены собственного слоя приложения (src/brand/digitable-chat.css).\n     Обе ветки получают одни значения: атрибут data-digitable-color-mode\n     приложение не выставляет, а тема не должна зависеть от того, включится он\n     когда-нибудь или нет.\n*/\n:root,\n[data-digitable-color-mode='light'] {\n  --digitable-bg-0: #05080D;\n  --digitable-bg-1: #071018;\n  --digitable-bg-2: #0B111A;\n  --digitable-panel: rgb(7 16 24 / 86%);\n  --digitable-panel-strong: rgb(5 8 13 / 94%);\n  --digitable-cyan: #00E5E5;\n  --digitable-cyan-soft: #00D8FF;\n  --digitable-white: #F5F7FA;\n  --digitable-muted: #9BAAB8;\n  --digitable-border: #15566A;\n  --digitable-yellow: #FFC247;\n  --digitable-orange: #FF8A2A;\n  --digitable-purple: #B65CFF;\n  --digitable-green: #7CFF6B;\n  --digitable-red: #FF5B5B;\n\n  --dt-chat-canvas: #05080D;\n  --dt-chat-canvas-soft: #071018;\n  --dt-chat-surface: rgb(7 16 24 / 88%);\n  --dt-chat-surface-strong: rgb(5 8 13 / 96%);\n  --dt-chat-line: rgb(0 229 229 / 22%);\n  --dt-chat-line-strong: rgb(0 229 229 / 58%);\n  --dt-chat-text: #F5F7FA;\n  --dt-chat-muted: #9BAAB8;\n  --dt-chat-shadow: 0 24px 68px rgb(5 8 13 / 55%);\n}\n\n/*\n  2. В том же файле приложения часть цветов записана литералами\n     (rgb(0 229 229 / …) — фирменный циан, rgb(7 16 24 / …) — тёмная подложка).\n     Переменной их не перебить, поэтому правила перечислены поимённо.\n     Часть селекторов сейчас в разметке не встречается (.dt-chat-product,\n     .dt-chat-room, .dt-chat-loading, .dt-chat-empty, .dt-chat-message-form,\n     .dt-chat-document, .dt-chat-room-option) — они оставлены намеренно, чтобы\n     возвращённая в шаблоны разметка не принесла с собой штатный циан.\n*/\n::selection {\n  background: #15566A;\n  color: #F5F7FA;\n}\n\n.dt-chat-product {\n  background:\n    radial-gradient(circle at 16% 8%, rgb(0 229 229 / 10%), transparent 26%),\n    radial-gradient(circle at 86% 10%, rgb(255 194 71 / 7%), transparent 22%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-product::before {\n  background-image:\n    linear-gradient(rgb(0 229 229 / 4%) 1px, transparent 1px),\n    linear-gradient(90deg, rgb(0 229 229 / 4%) 1px, transparent 1px);\n}\n\n.dt-chat-language-summary article {\n  background: linear-gradient(90deg, rgb(0 229 229 / 6%), transparent 78%);\n}\n\n.dt-chat-flow-step,\n[data-digitable-color-mode='light'] .dt-chat-flow-step {\n  background: rgb(7 16 24 / 46%);\n}\n\n.dt-chat-setup {\n  background:\n    linear-gradient(145deg, rgb(0 229 229 / 8%), transparent 36%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-setup::after {\n  border-color: rgb(0 229 229 / 14%);\n}\n\n.dt-chat-identity {\n  background: rgb(0 229 229 / 5%);\n}\n\n.dt-chat-room-option:hover,\n.dt-chat-room-option.is-selected {\n  background: rgb(0 229 229 / 9%);\n}\n\n.dt-chat-connection-guide {\n  background:\n    linear-gradient(145deg, rgb(0 229 229 / 7%), transparent 34%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-connection-step-icon {\n  background: rgb(0 229 229 / 8%);\n}\n\n.dt-chat-connection-status-guide {\n  background: rgb(0 229 229 / 4%);\n}\n\n.dt-chat-connection-status-guide i {\n  box-shadow: 0 0 0 3px rgb(155 170 184 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-direct {\n  box-shadow: 0 0 0 3px rgb(124 255 107 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-relay {\n  box-shadow: 0 0 0 3px rgb(255 194 71 / 12%);\n}\n\n.dt-chat-room {\n  background:\n    radial-gradient(circle at 50% 0%, rgb(0 229 229 / 7%), transparent 34%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-room-controls {\n  box-shadow: 0 16px 44px rgb(5 8 13 / 42%);\n}\n\n.dt-chat-empty,\n.dt-chat-message-form {\n  background: rgb(0 229 229 / 4%);\n}\n\n.dt-chat-loading {\n  background:\n    radial-gradient(circle at 50% 38%, rgb(0 229 229 / 12%), transparent 24%),\n    var(--dt-chat-canvas);\n}\n\n.dt-chat-loading img {\n  filter: drop-shadow(0 0 22px rgb(0 229 229 / 18%));\n}\n\n/*\n  3. MUI v5. Цвета приходят из src/brand/theme.ts через emotion, а его <style>\n     вставляется в конец <head> уже в рантайме — позже нашего файла. Поэтому\n     весь слой объявлен с !important: иначе он проигрывает при равной\n     специфичности.\n*/\nbody {\n  background-color: #05080D !important;\n  color: #F5F7FA !important;\n}\n\n*:focus-visible {\n  outline: 3px solid rgb(0 229 229 / 40%) !important;\n  outline-offset: 3px !important;\n}\n\n.MuiPaper-root {\n  background-color: #071018 !important;\n  background-image: none !important;\n  color: #F5F7FA !important;\n  border-color: rgb(21 86 106 / 52%) !important;\n}\n\n.MuiPaper-outlined {\n  border: 1px solid rgb(21 86 106 / 52%) !important;\n}\n\n.MuiAppBar-root {\n  background-color: rgb(5 8 13 / 92%) !important;\n  color: #F5F7FA !important;\n  border-bottom: 1px solid rgb(21 86 106 / 56%) !important;\n  box-shadow: none !important;\n}\n\n.MuiDrawer-paper {\n  background-color: #071018 !important;\n  color: #F5F7FA !important;\n  border-color: rgb(21 86 106 / 56%) !important;\n}\n\n.MuiBackdrop-root {\n  background-color: rgb(5 8 13 / 72%) !important;\n}\n\n.MuiDialog-paper,\n.MuiMenu-paper,\n.MuiAutocomplete-paper {\n  background-color: #071018 !important;\n  border: 1px solid rgb(21 86 106 / 72%) !important;\n  color: #F5F7FA !important;\n}\n\n.MuiDialogTitle-root {\n  color: #F5F7FA !important;\n}\n\n.MuiDialogContentText-root,\n.MuiTypography-caption,\n.MuiListItemText-secondary,\n.MuiFormHelperText-root {\n  color: #9BAAB8 !important;\n}\n\n.MuiTooltip-tooltip {\n  background-color: #0B111A !important;\n  color: #F5F7FA !important;\n  border: 1px solid rgb(21 86 106 / 68%) !important;\n}\n\n.MuiTooltip-arrow {\n  color: #0B111A !important;\n}\n\n.MuiDivider-root {\n  border-color: rgb(21 86 106 / 52%) !important;\n}\n\n.MuiLink-root {\n  color: #00E5E5 !important;\n  text-decoration-color: rgb(0 229 229 / 50%) !important;\n}\n\n/*\n  Кнопки. Порядок правил здесь значим: .MuiButton-root и\n  .MuiButton-containedPrimary — одна специфичность (0-1-0), и на залитой\n  кнопке совпадают оба селектора. Общее правило поэтому идёт ПЕРВЫМ, иначе оно\n  перекрасило бы текст залитой кнопки в акцент поверх акцентной заливки.\n*/\n.MuiButton-root,\n.MuiButton-textPrimary,\n.MuiButton-outlinedPrimary {\n  color: #00E5E5 !important;\n}\n\n.MuiButton-containedPrimary,\n.MuiFab-primary,\n.MuiFab-root {\n  background-color: #00E5E5 !important;\n  color: #05080D !important;\n  box-shadow: none !important;\n}\n\n.MuiButton-containedPrimary:hover,\n.MuiFab-primary:hover,\n.MuiFab-root:hover {\n  background-color: #00D8FF !important;\n  color: #05080D !important;\n}\n\n.MuiButton-containedSecondary {\n  background-color: #0B111A !important;\n  color: #F5F7FA !important;\n}\n\n.MuiButton-outlined {\n  border-color: rgb(21 86 106 / 82%) !important;\n}\n\n.MuiButton-outlined:hover,\n.MuiButton-text:hover {\n  border-color: #00E5E5 !important;\n  background-color: #062A31 !important;\n  color: #00E5E5 !important;\n}\n\n.MuiButton-root.Mui-disabled,\n.MuiIconButton-root.Mui-disabled {\n  color: #718695 !important;\n}\n\n.MuiIconButton-root,\n.MuiAccordionSummary-expandIconWrapper,\n.MuiListItemIcon-root {\n  color: #9BAAB8 !important;\n}\n\n.MuiIconButton-root:hover {\n  background-color: #062A31 !important;\n  color: #F5F7FA !important;\n}\n\n/* Поля ввода. Подложка — surface: на surfaceRaised плейсхолдер палитры paper\n   не набирает 4.5:1. */\n.MuiOutlinedInput-root {\n  background-color: #071018 !important;\n  color: #F5F7FA !important;\n}\n\n.MuiOutlinedInput-notchedOutline {\n  border-color: rgb(21 86 106 / 72%) !important;\n}\n\n.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n  border-color: rgb(0 229 229 / 72%) !important;\n}\n\n.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n  border-color: #00E5E5 !important;\n  border-width: 1px !important;\n}\n\n.MuiInputBase-input {\n  color: #F5F7FA !important;\n  caret-color: #00E5E5 !important;\n}\n\n.MuiInputBase-input::placeholder {\n  color: #718695 !important;\n  opacity: 1 !important;\n}\n\n.MuiInputLabel-root {\n  color: #9BAAB8 !important;\n}\n\n.MuiInputLabel-root.Mui-focused {\n  color: #00E5E5 !important;\n}\n\n/* Списки пиров, меню, аккордеоны */\n.MuiListItemButton-root,\n.MuiMenuItem-root,\n.MuiAutocomplete-option {\n  color: #F5F7FA !important;\n}\n\n.MuiListItemButton-root:hover,\n.MuiMenuItem-root:hover,\n.MuiAutocomplete-option:hover {\n  background-color: #062A31 !important;\n  color: #00E5E5 !important;\n}\n\n.MuiListItemButton-root.Mui-selected,\n.MuiMenuItem-root.Mui-selected,\n.MuiAutocomplete-option[aria-selected='true'] {\n  background-color: #063B41 !important;\n  color: #00E5E5 !important;\n}\n\n.MuiAccordion-root {\n  background-color: #071018 !important;\n  border: 1px solid rgb(21 86 106 / 50%) !important;\n}\n\n.MuiAccordionSummary-root {\n  color: #F5F7FA !important;\n}\n\n.MuiAccordionDetails-root {\n  color: #9BAAB8 !important;\n}\n\n.MuiToggleButton-root {\n  color: #9BAAB8 !important;\n  border-color: rgb(21 86 106 / 60%) !important;\n}\n\n.MuiToggleButton-root.Mui-selected {\n  background-color: #063B41 !important;\n  color: #00E5E5 !important;\n}\n\n/* Переключатели, ползунки, индикаторы */\n.MuiSwitch-track {\n  background-color: #718695 !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked {\n  color: #00E5E5 !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track {\n  background-color: #00E5E5 !important;\n}\n\n.MuiCheckbox-root {\n  color: #718695 !important;\n}\n\n.MuiCheckbox-root.Mui-checked {\n  color: #00E5E5 !important;\n}\n\n.MuiSlider-rail {\n  background-color: rgb(21 86 106 / 60%) !important;\n}\n\n.MuiSlider-track,\n.MuiSlider-thumb {\n  background-color: #00E5E5 !important;\n  border-color: #00E5E5 !important;\n}\n\n.MuiCircularProgress-root {\n  color: #00E5E5 !important;\n}\n\n.MuiBadge-badge {\n  background-color: #00E5E5 !important;\n  color: #05080D !important;\n}\n\n/* Уведомления о состоянии связи: severity должна читаться, поэтому заливка\n   непрозрачная, а текст на ней проверен на 4.5:1. */\n.MuiAlert-standardInfo {\n  background-color: #0F283D !important;\n  color: #3CA9FF !important;\n}\n\n.MuiAlert-standardInfo .MuiAlert-icon {\n  color: #3CA9FF !important;\n}\n\n.MuiAlert-standardSuccess {\n  background-color: #1A3625 !important;\n  color: #7CFF6B !important;\n}\n\n.MuiAlert-standardSuccess .MuiAlert-icon {\n  color: #7CFF6B !important;\n}\n\n.MuiAlert-standardWarning {\n  background-color: #2F2C20 !important;\n  color: #FFC247 !important;\n}\n\n.MuiAlert-standardWarning .MuiAlert-icon {\n  color: #FFC247 !important;\n}\n\n.MuiAlert-standardError {\n  background-color: #2F1C23 !important;\n  color: #FF5B5B !important;\n}\n\n.MuiAlert-standardError .MuiAlert-icon {\n  color: #FF5B5B !important;\n}\n\n/*\n  4. Подсветка кода в сообщениях. react-syntax-highlighter ставит цвета\n     инлайном, но классы токенов сохраняет, поэтому перекрашивается по ним.\n     Подложка — background: на ней порог 4.5:1 для всех текстовых ролей палитры\n     проверяет сам generate-themes.mjs.\n*/\ndiv[class*='language-'],\npre[class*='language-'],\ncode[class*='language-'] {\n  background: #05080D !important;\n  color: #F5F7FA !important;\n}\n\n:not(pre) > code {\n  background: #0B111A !important;\n  color: #7CFF6B !important;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n  color: #718695 !important;\n}\n\n.token.punctuation {\n  color: #9BAAB8 !important;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n  color: #FFC247 !important;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n  color: #7CFF6B !important;\n}\n\n.token.operator,\n.token.entity,\n.token.url {\n  color: #00D8FF !important;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n  color: #B65CFF !important;\n}\n\n.token.function,\n.token.class-name {\n  color: #3CA9FF !important;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n  color: #FF8A2A !important;\n}\n"
    }
   ]
  },
  {
   "id": "paper",
   "label": "Paper",
   "files": [
    {
     "name": "digitable-focus-paper.css",
     "path": "digitable-focus-paper.css",
     "lang": "css",
     "bytes": 12850,
     "lines": 515,
     "text": "/* Digitable Focus Paper for Digitable Chat — Digitable Workbench 0.1.0 */\n\n/*\n  1. Токены собственного слоя приложения (src/brand/digitable-chat.css).\n     Обе ветки получают одни значения: атрибут data-digitable-color-mode\n     приложение не выставляет, а тема не должна зависеть от того, включится он\n     когда-нибудь или нет.\n*/\n:root,\n[data-digitable-color-mode='light'] {\n  --digitable-bg-0: #F4F7F8;\n  --digitable-bg-1: #FFFFFF;\n  --digitable-bg-2: #E9F0F2;\n  --digitable-panel: rgb(255 255 255 / 86%);\n  --digitable-panel-strong: rgb(244 247 248 / 94%);\n  --digitable-cyan: #007C83;\n  --digitable-cyan-soft: #006E78;\n  --digitable-white: #10202A;\n  --digitable-muted: #526A78;\n  --digitable-border: #A9C2C9;\n  --digitable-yellow: #8A5B00;\n  --digitable-orange: #A54A00;\n  --digitable-purple: #7139A3;\n  --digitable-green: #287A36;\n  --digitable-red: #B4232E;\n\n  --dt-chat-canvas: #F4F7F8;\n  --dt-chat-canvas-soft: #FFFFFF;\n  --dt-chat-surface: rgb(255 255 255 / 88%);\n  --dt-chat-surface-strong: rgb(244 247 248 / 96%);\n  --dt-chat-line: rgb(0 124 131 / 22%);\n  --dt-chat-line-strong: rgb(0 124 131 / 58%);\n  --dt-chat-text: #10202A;\n  --dt-chat-muted: #526A78;\n  --dt-chat-shadow: 0 24px 68px rgb(16 32 42 / 14%);\n}\n\n/*\n  2. В том же файле приложения часть цветов записана литералами\n     (rgb(0 229 229 / …) — фирменный циан, rgb(7 16 24 / …) — тёмная подложка).\n     Переменной их не перебить, поэтому правила перечислены поимённо.\n     Часть селекторов сейчас в разметке не встречается (.dt-chat-product,\n     .dt-chat-room, .dt-chat-loading, .dt-chat-empty, .dt-chat-message-form,\n     .dt-chat-document, .dt-chat-room-option) — они оставлены намеренно, чтобы\n     возвращённая в шаблоны разметка не принесла с собой штатный циан.\n*/\n::selection {\n  background: #70CED4;\n  color: #10202A;\n}\n\n.dt-chat-product {\n  background:\n    radial-gradient(circle at 16% 8%, rgb(0 124 131 / 10%), transparent 26%),\n    radial-gradient(circle at 86% 10%, rgb(138 91 0 / 7%), transparent 22%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-product::before {\n  background-image:\n    linear-gradient(rgb(0 124 131 / 4%) 1px, transparent 1px),\n    linear-gradient(90deg, rgb(0 124 131 / 4%) 1px, transparent 1px);\n}\n\n.dt-chat-language-summary article {\n  background: linear-gradient(90deg, rgb(0 124 131 / 6%), transparent 78%);\n}\n\n.dt-chat-flow-step,\n[data-digitable-color-mode='light'] .dt-chat-flow-step {\n  background: rgb(255 255 255 / 62%);\n}\n\n.dt-chat-setup {\n  background:\n    linear-gradient(145deg, rgb(0 124 131 / 8%), transparent 36%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-setup::after {\n  border-color: rgb(0 124 131 / 14%);\n}\n\n.dt-chat-identity {\n  background: rgb(0 124 131 / 5%);\n}\n\n.dt-chat-room-option:hover,\n.dt-chat-room-option.is-selected {\n  background: rgb(0 124 131 / 9%);\n}\n\n.dt-chat-connection-guide {\n  background:\n    linear-gradient(145deg, rgb(0 124 131 / 7%), transparent 34%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-connection-step-icon {\n  background: rgb(0 124 131 / 8%);\n}\n\n.dt-chat-connection-status-guide {\n  background: rgb(0 124 131 / 4%);\n}\n\n.dt-chat-connection-status-guide i {\n  box-shadow: 0 0 0 3px rgb(82 106 120 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-direct {\n  box-shadow: 0 0 0 3px rgb(40 122 54 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-relay {\n  box-shadow: 0 0 0 3px rgb(138 91 0 / 12%);\n}\n\n.dt-chat-room {\n  background:\n    radial-gradient(circle at 50% 0%, rgb(0 124 131 / 7%), transparent 34%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-room-controls {\n  box-shadow: 0 16px 44px rgb(244 247 248 / 16%);\n}\n\n.dt-chat-empty,\n.dt-chat-message-form {\n  background: rgb(0 124 131 / 4%);\n}\n\n.dt-chat-loading {\n  background:\n    radial-gradient(circle at 50% 38%, rgb(0 124 131 / 12%), transparent 24%),\n    var(--dt-chat-canvas);\n}\n\n.dt-chat-loading img {\n  filter: drop-shadow(0 0 22px rgb(0 124 131 / 18%));\n}\n\n/*\n  3. MUI v5. Цвета приходят из src/brand/theme.ts через emotion, а его <style>\n     вставляется в конец <head> уже в рантайме — позже нашего файла. Поэтому\n     весь слой объявлен с !important: иначе он проигрывает при равной\n     специфичности.\n*/\nbody {\n  background-color: #F4F7F8 !important;\n  color: #10202A !important;\n}\n\n*:focus-visible {\n  outline: 3px solid rgb(0 124 131 / 40%) !important;\n  outline-offset: 3px !important;\n}\n\n.MuiPaper-root {\n  background-color: #FFFFFF !important;\n  background-image: none !important;\n  color: #10202A !important;\n  border-color: rgb(169 194 201 / 52%) !important;\n}\n\n.MuiPaper-outlined {\n  border: 1px solid rgb(169 194 201 / 52%) !important;\n}\n\n.MuiAppBar-root {\n  background-color: rgb(244 247 248 / 92%) !important;\n  color: #10202A !important;\n  border-bottom: 1px solid rgb(169 194 201 / 56%) !important;\n  box-shadow: none !important;\n}\n\n.MuiDrawer-paper {\n  background-color: #FFFFFF !important;\n  color: #10202A !important;\n  border-color: rgb(169 194 201 / 56%) !important;\n}\n\n.MuiBackdrop-root {\n  background-color: rgb(244 247 248 / 72%) !important;\n}\n\n.MuiDialog-paper,\n.MuiMenu-paper,\n.MuiAutocomplete-paper {\n  background-color: #FFFFFF !important;\n  border: 1px solid rgb(169 194 201 / 72%) !important;\n  color: #10202A !important;\n}\n\n.MuiDialogTitle-root {\n  color: #10202A !important;\n}\n\n.MuiDialogContentText-root,\n.MuiTypography-caption,\n.MuiListItemText-secondary,\n.MuiFormHelperText-root {\n  color: #526A78 !important;\n}\n\n.MuiTooltip-tooltip {\n  background-color: #E9F0F2 !important;\n  color: #10202A !important;\n  border: 1px solid rgb(169 194 201 / 68%) !important;\n}\n\n.MuiTooltip-arrow {\n  color: #E9F0F2 !important;\n}\n\n.MuiDivider-root {\n  border-color: rgb(169 194 201 / 52%) !important;\n}\n\n.MuiLink-root {\n  color: #007C83 !important;\n  text-decoration-color: rgb(0 124 131 / 50%) !important;\n}\n\n/*\n  Кнопки. Порядок правил здесь значим: .MuiButton-root и\n  .MuiButton-containedPrimary — одна специфичность (0-1-0), и на залитой\n  кнопке совпадают оба селектора. Общее правило поэтому идёт ПЕРВЫМ, иначе оно\n  перекрасило бы текст залитой кнопки в акцент поверх акцентной заливки.\n*/\n.MuiButton-root,\n.MuiButton-textPrimary,\n.MuiButton-outlinedPrimary {\n  color: #007C83 !important;\n}\n\n.MuiButton-containedPrimary,\n.MuiFab-primary,\n.MuiFab-root {\n  background-color: #007C83 !important;\n  color: #F4F7F8 !important;\n  box-shadow: none !important;\n}\n\n.MuiButton-containedPrimary:hover,\n.MuiFab-primary:hover,\n.MuiFab-root:hover {\n  background-color: #006E78 !important;\n  color: #F4F7F8 !important;\n}\n\n.MuiButton-containedSecondary {\n  background-color: #E9F0F2 !important;\n  color: #10202A !important;\n}\n\n.MuiButton-outlined {\n  border-color: rgb(169 194 201 / 82%) !important;\n}\n\n.MuiButton-outlined:hover,\n.MuiButton-text:hover {\n  border-color: #007C83 !important;\n  background-color: #E6F2F3 !important;\n  color: #006E78 !important;\n}\n\n.MuiButton-root.Mui-disabled,\n.MuiIconButton-root.Mui-disabled {\n  color: #5F7480 !important;\n}\n\n.MuiIconButton-root,\n.MuiAccordionSummary-expandIconWrapper,\n.MuiListItemIcon-root {\n  color: #526A78 !important;\n}\n\n.MuiIconButton-root:hover {\n  background-color: #E6F2F3 !important;\n  color: #10202A !important;\n}\n\n/* Поля ввода. Подложка — surface: на surfaceRaised плейсхолдер палитры paper\n   не набирает 4.5:1. */\n.MuiOutlinedInput-root {\n  background-color: #FFFFFF !important;\n  color: #10202A !important;\n}\n\n.MuiOutlinedInput-notchedOutline {\n  border-color: rgb(169 194 201 / 72%) !important;\n}\n\n.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n  border-color: rgb(0 124 131 / 72%) !important;\n}\n\n.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n  border-color: #007C83 !important;\n  border-width: 1px !important;\n}\n\n.MuiInputBase-input {\n  color: #10202A !important;\n  caret-color: #007C83 !important;\n}\n\n.MuiInputBase-input::placeholder {\n  color: #5F7480 !important;\n  opacity: 1 !important;\n}\n\n.MuiInputLabel-root {\n  color: #526A78 !important;\n}\n\n.MuiInputLabel-root.Mui-focused {\n  color: #007C83 !important;\n}\n\n/* Списки пиров, меню, аккордеоны */\n.MuiListItemButton-root,\n.MuiMenuItem-root,\n.MuiAutocomplete-option {\n  color: #10202A !important;\n}\n\n.MuiListItemButton-root:hover,\n.MuiMenuItem-root:hover,\n.MuiAutocomplete-option:hover {\n  background-color: #E6F2F3 !important;\n  color: #006E78 !important;\n}\n\n.MuiListItemButton-root.Mui-selected,\n.MuiMenuItem-root.Mui-selected,\n.MuiAutocomplete-option[aria-selected='true'] {\n  background-color: #D6EAEB !important;\n  color: #006E78 !important;\n}\n\n.MuiAccordion-root {\n  background-color: #FFFFFF !important;\n  border: 1px solid rgb(169 194 201 / 50%) !important;\n}\n\n.MuiAccordionSummary-root {\n  color: #10202A !important;\n}\n\n.MuiAccordionDetails-root {\n  color: #526A78 !important;\n}\n\n.MuiToggleButton-root {\n  color: #526A78 !important;\n  border-color: rgb(169 194 201 / 60%) !important;\n}\n\n.MuiToggleButton-root.Mui-selected {\n  background-color: #D6EAEB !important;\n  color: #006E78 !important;\n}\n\n/* Переключатели, ползунки, индикаторы */\n.MuiSwitch-track {\n  background-color: #5F7480 !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked {\n  color: #007C83 !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track {\n  background-color: #007C83 !important;\n}\n\n.MuiCheckbox-root {\n  color: #5F7480 !important;\n}\n\n.MuiCheckbox-root.Mui-checked {\n  color: #007C83 !important;\n}\n\n.MuiSlider-rail {\n  background-color: rgb(169 194 201 / 60%) !important;\n}\n\n.MuiSlider-track,\n.MuiSlider-thumb {\n  background-color: #007C83 !important;\n  border-color: #007C83 !important;\n}\n\n.MuiCircularProgress-root {\n  color: #007C83 !important;\n}\n\n.MuiBadge-badge {\n  background-color: #007C83 !important;\n  color: #F4F7F8 !important;\n}\n\n/* Уведомления о состоянии связи: severity должна читаться, поэтому заливка\n   непрозрачная, а текст на ней проверен на 4.5:1. */\n.MuiAlert-standardInfo {\n  background-color: #E0EDF5 !important;\n  color: #0067A8 !important;\n}\n\n.MuiAlert-standardInfo .MuiAlert-icon {\n  color: #0067A8 !important;\n}\n\n.MuiAlert-standardSuccess {\n  background-color: #E5EFE7 !important;\n  color: #287A36 !important;\n}\n\n.MuiAlert-standardSuccess .MuiAlert-icon {\n  color: #287A36 !important;\n}\n\n.MuiAlert-standardWarning {\n  background-color: #F1EBE0 !important;\n  color: #8A5B00 !important;\n}\n\n.MuiAlert-standardWarning .MuiAlert-icon {\n  color: #8A5B00 !important;\n}\n\n.MuiAlert-standardError {\n  background-color: #F6E5E6 !important;\n  color: #B4232E !important;\n}\n\n.MuiAlert-standardError .MuiAlert-icon {\n  color: #B4232E !important;\n}\n\n/*\n  4. Подсветка кода в сообщениях. react-syntax-highlighter ставит цвета\n     инлайном, но классы токенов сохраняет, поэтому перекрашивается по ним.\n     Подложка — background: на ней порог 4.5:1 для всех текстовых ролей палитры\n     проверяет сам generate-themes.mjs.\n*/\ndiv[class*='language-'],\npre[class*='language-'],\ncode[class*='language-'] {\n  background: #F4F7F8 !important;\n  color: #10202A !important;\n}\n\n:not(pre) > code {\n  background: #E9F0F2 !important;\n  color: #287A36 !important;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n  color: #5F7480 !important;\n}\n\n.token.punctuation {\n  color: #526A78 !important;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n  color: #8A5B00 !important;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n  color: #287A36 !important;\n}\n\n.token.operator,\n.token.entity,\n.token.url {\n  color: #006E78 !important;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n  color: #7139A3 !important;\n}\n\n.token.function,\n.token.class-name {\n  color: #0067A8 !important;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n  color: #A54A00 !important;\n}\n"
    }
   ]
  },
  {
   "id": "signal",
   "label": "Signal",
   "files": [
    {
     "name": "digitable-focus-signal.css",
     "path": "digitable-focus-signal.css",
     "lang": "css",
     "bytes": 12809,
     "lines": 515,
     "text": "/* Digitable Focus Signal for Digitable Chat — Digitable Workbench 0.1.0 */\n\n/*\n  1. Токены собственного слоя приложения (src/brand/digitable-chat.css).\n     Обе ветки получают одни значения: атрибут data-digitable-color-mode\n     приложение не выставляет, а тема не должна зависеть от того, включится он\n     когда-нибудь или нет.\n*/\n:root,\n[data-digitable-color-mode='light'] {\n  --digitable-bg-0: #000000;\n  --digitable-bg-1: #090D10;\n  --digitable-bg-2: #101820;\n  --digitable-panel: rgb(9 13 16 / 86%);\n  --digitable-panel-strong: rgb(0 0 0 / 94%);\n  --digitable-cyan: #00FFFF;\n  --digitable-cyan-soft: #66FFFF;\n  --digitable-white: #FFFFFF;\n  --digitable-muted: #D0D9DE;\n  --digitable-border: #66FFFF;\n  --digitable-yellow: #FFD800;\n  --digitable-orange: #FF9D3D;\n  --digitable-purple: #E47AFF;\n  --digitable-green: #7CFF00;\n  --digitable-red: #FF4D5A;\n\n  --dt-chat-canvas: #000000;\n  --dt-chat-canvas-soft: #090D10;\n  --dt-chat-surface: rgb(9 13 16 / 88%);\n  --dt-chat-surface-strong: rgb(0 0 0 / 96%);\n  --dt-chat-line: rgb(0 255 255 / 22%);\n  --dt-chat-line-strong: rgb(0 255 255 / 58%);\n  --dt-chat-text: #FFFFFF;\n  --dt-chat-muted: #D0D9DE;\n  --dt-chat-shadow: 0 24px 68px rgb(0 0 0 / 55%);\n}\n\n/*\n  2. В том же файле приложения часть цветов записана литералами\n     (rgb(0 229 229 / …) — фирменный циан, rgb(7 16 24 / …) — тёмная подложка).\n     Переменной их не перебить, поэтому правила перечислены поимённо.\n     Часть селекторов сейчас в разметке не встречается (.dt-chat-product,\n     .dt-chat-room, .dt-chat-loading, .dt-chat-empty, .dt-chat-message-form,\n     .dt-chat-document, .dt-chat-room-option) — они оставлены намеренно, чтобы\n     возвращённая в шаблоны разметка не принесла с собой штатный циан.\n*/\n::selection {\n  background: #00FFFF;\n  color: #000000;\n}\n\n.dt-chat-product {\n  background:\n    radial-gradient(circle at 16% 8%, rgb(0 255 255 / 10%), transparent 26%),\n    radial-gradient(circle at 86% 10%, rgb(255 216 0 / 7%), transparent 22%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-product::before {\n  background-image:\n    linear-gradient(rgb(0 255 255 / 4%) 1px, transparent 1px),\n    linear-gradient(90deg, rgb(0 255 255 / 4%) 1px, transparent 1px);\n}\n\n.dt-chat-language-summary article {\n  background: linear-gradient(90deg, rgb(0 255 255 / 6%), transparent 78%);\n}\n\n.dt-chat-flow-step,\n[data-digitable-color-mode='light'] .dt-chat-flow-step {\n  background: rgb(9 13 16 / 46%);\n}\n\n.dt-chat-setup {\n  background:\n    linear-gradient(145deg, rgb(0 255 255 / 8%), transparent 36%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-setup::after {\n  border-color: rgb(0 255 255 / 14%);\n}\n\n.dt-chat-identity {\n  background: rgb(0 255 255 / 5%);\n}\n\n.dt-chat-room-option:hover,\n.dt-chat-room-option.is-selected {\n  background: rgb(0 255 255 / 9%);\n}\n\n.dt-chat-connection-guide {\n  background:\n    linear-gradient(145deg, rgb(0 255 255 / 7%), transparent 34%),\n    var(--dt-chat-surface);\n}\n\n.dt-chat-connection-step-icon {\n  background: rgb(0 255 255 / 8%);\n}\n\n.dt-chat-connection-status-guide {\n  background: rgb(0 255 255 / 4%);\n}\n\n.dt-chat-connection-status-guide i {\n  box-shadow: 0 0 0 3px rgb(208 217 222 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-direct {\n  box-shadow: 0 0 0 3px rgb(124 255 0 / 12%);\n}\n\n.dt-chat-connection-status-guide i.is-relay {\n  box-shadow: 0 0 0 3px rgb(255 216 0 / 12%);\n}\n\n.dt-chat-room {\n  background:\n    radial-gradient(circle at 50% 0%, rgb(0 255 255 / 7%), transparent 34%),\n    linear-gradient(135deg, var(--dt-chat-canvas), var(--dt-chat-canvas-soft));\n}\n\n.dt-chat-room-controls {\n  box-shadow: 0 16px 44px rgb(0 0 0 / 42%);\n}\n\n.dt-chat-empty,\n.dt-chat-message-form {\n  background: rgb(0 255 255 / 4%);\n}\n\n.dt-chat-loading {\n  background:\n    radial-gradient(circle at 50% 38%, rgb(0 255 255 / 12%), transparent 24%),\n    var(--dt-chat-canvas);\n}\n\n.dt-chat-loading img {\n  filter: drop-shadow(0 0 22px rgb(0 255 255 / 18%));\n}\n\n/*\n  3. MUI v5. Цвета приходят из src/brand/theme.ts через emotion, а его <style>\n     вставляется в конец <head> уже в рантайме — позже нашего файла. Поэтому\n     весь слой объявлен с !important: иначе он проигрывает при равной\n     специфичности.\n*/\nbody {\n  background-color: #000000 !important;\n  color: #FFFFFF !important;\n}\n\n*:focus-visible {\n  outline: 3px solid rgb(0 255 255 / 40%) !important;\n  outline-offset: 3px !important;\n}\n\n.MuiPaper-root {\n  background-color: #090D10 !important;\n  background-image: none !important;\n  color: #FFFFFF !important;\n  border-color: rgb(102 255 255 / 52%) !important;\n}\n\n.MuiPaper-outlined {\n  border: 1px solid rgb(102 255 255 / 52%) !important;\n}\n\n.MuiAppBar-root {\n  background-color: rgb(0 0 0 / 92%) !important;\n  color: #FFFFFF !important;\n  border-bottom: 1px solid rgb(102 255 255 / 56%) !important;\n  box-shadow: none !important;\n}\n\n.MuiDrawer-paper {\n  background-color: #090D10 !important;\n  color: #FFFFFF !important;\n  border-color: rgb(102 255 255 / 56%) !important;\n}\n\n.MuiBackdrop-root {\n  background-color: rgb(0 0 0 / 72%) !important;\n}\n\n.MuiDialog-paper,\n.MuiMenu-paper,\n.MuiAutocomplete-paper {\n  background-color: #090D10 !important;\n  border: 1px solid rgb(102 255 255 / 72%) !important;\n  color: #FFFFFF !important;\n}\n\n.MuiDialogTitle-root {\n  color: #FFFFFF !important;\n}\n\n.MuiDialogContentText-root,\n.MuiTypography-caption,\n.MuiListItemText-secondary,\n.MuiFormHelperText-root {\n  color: #D0D9DE !important;\n}\n\n.MuiTooltip-tooltip {\n  background-color: #101820 !important;\n  color: #FFFFFF !important;\n  border: 1px solid rgb(102 255 255 / 68%) !important;\n}\n\n.MuiTooltip-arrow {\n  color: #101820 !important;\n}\n\n.MuiDivider-root {\n  border-color: rgb(102 255 255 / 52%) !important;\n}\n\n.MuiLink-root {\n  color: #00FFFF !important;\n  text-decoration-color: rgb(0 255 255 / 50%) !important;\n}\n\n/*\n  Кнопки. Порядок правил здесь значим: .MuiButton-root и\n  .MuiButton-containedPrimary — одна специфичность (0-1-0), и на залитой\n  кнопке совпадают оба селектора. Общее правило поэтому идёт ПЕРВЫМ, иначе оно\n  перекрасило бы текст залитой кнопки в акцент поверх акцентной заливки.\n*/\n.MuiButton-root,\n.MuiButton-textPrimary,\n.MuiButton-outlinedPrimary {\n  color: #00FFFF !important;\n}\n\n.MuiButton-containedPrimary,\n.MuiFab-primary,\n.MuiFab-root {\n  background-color: #00FFFF !important;\n  color: #000000 !important;\n  box-shadow: none !important;\n}\n\n.MuiButton-containedPrimary:hover,\n.MuiFab-primary:hover,\n.MuiFab-root:hover {\n  background-color: #66FFFF !important;\n  color: #000000 !important;\n}\n\n.MuiButton-containedSecondary {\n  background-color: #101820 !important;\n  color: #FFFFFF !important;\n}\n\n.MuiButton-outlined {\n  border-color: rgb(102 255 255 / 82%) !important;\n}\n\n.MuiButton-outlined:hover,\n.MuiButton-text:hover {\n  border-color: #00FFFF !important;\n  background-color: #082A2D !important;\n  color: #00FFFF !important;\n}\n\n.MuiButton-root.Mui-disabled,\n.MuiIconButton-root.Mui-disabled {\n  color: #A8B6BF !important;\n}\n\n.MuiIconButton-root,\n.MuiAccordionSummary-expandIconWrapper,\n.MuiListItemIcon-root {\n  color: #D0D9DE !important;\n}\n\n.MuiIconButton-root:hover {\n  background-color: #082A2D !important;\n  color: #FFFFFF !important;\n}\n\n/* Поля ввода. Подложка — surface: на surfaceRaised плейсхолдер палитры paper\n   не набирает 4.5:1. */\n.MuiOutlinedInput-root {\n  background-color: #090D10 !important;\n  color: #FFFFFF !important;\n}\n\n.MuiOutlinedInput-notchedOutline {\n  border-color: rgb(102 255 255 / 72%) !important;\n}\n\n.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n  border-color: rgb(0 255 255 / 72%) !important;\n}\n\n.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {\n  border-color: #00FFFF !important;\n  border-width: 1px !important;\n}\n\n.MuiInputBase-input {\n  color: #FFFFFF !important;\n  caret-color: #00FFFF !important;\n}\n\n.MuiInputBase-input::placeholder {\n  color: #A8B6BF !important;\n  opacity: 1 !important;\n}\n\n.MuiInputLabel-root {\n  color: #D0D9DE !important;\n}\n\n.MuiInputLabel-root.Mui-focused {\n  color: #00FFFF !important;\n}\n\n/* Списки пиров, меню, аккордеоны */\n.MuiListItemButton-root,\n.MuiMenuItem-root,\n.MuiAutocomplete-option {\n  color: #FFFFFF !important;\n}\n\n.MuiListItemButton-root:hover,\n.MuiMenuItem-root:hover,\n.MuiAutocomplete-option:hover {\n  background-color: #082A2D !important;\n  color: #00FFFF !important;\n}\n\n.MuiListItemButton-root.Mui-selected,\n.MuiMenuItem-root.Mui-selected,\n.MuiAutocomplete-option[aria-selected='true'] {\n  background-color: #073D40 !important;\n  color: #00FFFF !important;\n}\n\n.MuiAccordion-root {\n  background-color: #090D10 !important;\n  border: 1px solid rgb(102 255 255 / 50%) !important;\n}\n\n.MuiAccordionSummary-root {\n  color: #FFFFFF !important;\n}\n\n.MuiAccordionDetails-root {\n  color: #D0D9DE !important;\n}\n\n.MuiToggleButton-root {\n  color: #D0D9DE !important;\n  border-color: rgb(102 255 255 / 60%) !important;\n}\n\n.MuiToggleButton-root.Mui-selected {\n  background-color: #073D40 !important;\n  color: #00FFFF !important;\n}\n\n/* Переключатели, ползунки, индикаторы */\n.MuiSwitch-track {\n  background-color: #A8B6BF !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked {\n  color: #00FFFF !important;\n}\n\n.MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track {\n  background-color: #00FFFF !important;\n}\n\n.MuiCheckbox-root {\n  color: #A8B6BF !important;\n}\n\n.MuiCheckbox-root.Mui-checked {\n  color: #00FFFF !important;\n}\n\n.MuiSlider-rail {\n  background-color: rgb(102 255 255 / 60%) !important;\n}\n\n.MuiSlider-track,\n.MuiSlider-thumb {\n  background-color: #00FFFF !important;\n  border-color: #00FFFF !important;\n}\n\n.MuiCircularProgress-root {\n  color: #00FFFF !important;\n}\n\n.MuiBadge-badge {\n  background-color: #00FFFF !important;\n  color: #000000 !important;\n}\n\n/* Уведомления о состоянии связи: severity должна читаться, поэтому заливка\n   непрозрачная, а текст на ней проверен на 4.5:1. */\n.MuiAlert-standardInfo {\n  background-color: #152636 !important;\n  color: #55AAFF !important;\n}\n\n.MuiAlert-standardInfo .MuiAlert-icon {\n  color: #55AAFF !important;\n}\n\n.MuiAlert-standardSuccess {\n  background-color: #1B340D !important;\n  color: #7CFF00 !important;\n}\n\n.MuiAlert-standardSuccess .MuiAlert-icon {\n  color: #7CFF00 !important;\n}\n\n.MuiAlert-standardWarning {\n  background-color: #302D0D !important;\n  color: #FFD800 !important;\n}\n\n.MuiAlert-standardWarning .MuiAlert-icon {\n  color: #FFD800 !important;\n}\n\n.MuiAlert-standardError {\n  background-color: #30171C !important;\n  color: #FF4D5A !important;\n}\n\n.MuiAlert-standardError .MuiAlert-icon {\n  color: #FF4D5A !important;\n}\n\n/*\n  4. Подсветка кода в сообщениях. react-syntax-highlighter ставит цвета\n     инлайном, но классы токенов сохраняет, поэтому перекрашивается по ним.\n     Подложка — background: на ней порог 4.5:1 для всех текстовых ролей палитры\n     проверяет сам generate-themes.mjs.\n*/\ndiv[class*='language-'],\npre[class*='language-'],\ncode[class*='language-'] {\n  background: #000000 !important;\n  color: #FFFFFF !important;\n}\n\n:not(pre) > code {\n  background: #101820 !important;\n  color: #7CFF00 !important;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n  color: #A8B6BF !important;\n}\n\n.token.punctuation {\n  color: #D0D9DE !important;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n  color: #FFD800 !important;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n  color: #7CFF00 !important;\n}\n\n.token.operator,\n.token.entity,\n.token.url {\n  color: #66FFFF !important;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n  color: #E47AFF !important;\n}\n\n.token.function,\n.token.class-name {\n  color: #55AAFF !important;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n  color: #FF9D3D !important;\n}\n"
    }
   ]
  }
 ]
}
