/* Общая тема для всех страниц zenmonitor.ru (02.09.2026).
   Раньше каждая страница жила своей: мастерская умела светлую и тёмную, главная и вход
   шли за ней, а инструменты были вечно светлыми — и человек с ночной темой открывал
   инструмент, получая в лицо белый лист. Теперь тему выбирают в одном месте, а здесь
   лежит её ночная половина.

   Работает это так: у всех инструментов ядро палитры оказалось ОДИНАКОВЫМ
   (--bg, --card, --line, --tx, --mut, --green…) — значит хватает переопределить его
   при data-theme="dark" на корне. Ниже — только цвета; ни одной новой рамки, отступа
   или размера, чтобы не спорить с вёрсткой самих инструментов.
   Подставляет этот файл nginx, одной строкой на каждую страницу. */

/* ═══════════════════════════════════════════════════════════════════════════
   КАНОН ИМЁН (14.09.2026). Инструмент не пишет цвет числом — он берёт его отсюда.

   Почему это правило, а не пожелание. Тёмную тему общий слой красит ПО ИМЕНИ
   переменной. Инструмент, который вписал «#fff» или придумал своё имя (--zel
   вместо --green), из темы выпадает молча: на тёмном фоне остаются белые кнопки,
   а текст сливается с подложкой. Так и вышло 14.09.2026 — хозяин переключил тему
   и нашёл разом семь страниц с белыми пятнами.

   Имена ниже одинаковы во всех инструментах. Светлые значения — умолчание, тёмные
   переопределяются ниже одним блоком. Новому инструменту достаточно писать
   var(--card), var(--tx), var(--green) — и обе темы получаются сами.

   Проверяет /root/temy_proba.py: он не ищет имена в коде, а меряет ОТРИСОВАННОЕ —
   контраст текста и светлые пятна на тёмном. Обмануть его вёрсткой нельзя. */
:root{
  --bg:#fafbfc;          /* фон страницы */
  --card:#ffffff;        /* поверхность: карточка, панель, поле */
  --line:#eef0f3;        /* рамка спокойная */
  --line2:#dfe3e8;       /* рамка заметная */
  --tx:#2f353d;          /* основной текст */
  --mut:#6f7887;         /* приглушённый текст — но читаемый: контраст 4,2 */
  --faint:#838c9a;       /* совсем тихий, и всё же выше порога: контраст 3,1 */
  --green:#00A86B;       /* «хорошо», главное действие — ЗАЛИВКА кнопок и плашек */
  --green-d:#007a4d;     /* ЗЕЛЁНЫЙ ТЕКСТ берётся отсюда: --green на светлом фоне
                            даёт контраст 3,0 — на самой грани читаемости */
  --green-l:#eaf7f0;     /* зелёная подложка */
  --red:#dc3545;   --red-l:#fdeaec;
  --amber:#e0a800; --amber-d:#8a6600; --amber-l:#fff3cd;
  --blue:#4a7dff;  --blue-l:#eaf0ff;
  --acc:#8b6dff;   --acc2:#a98cff;  --accsoft:rgba(139,109,255,.14);
  --gray-l:#f4f6f8;      /* нейтральная подложка: неактивная кнопка, фон значка */
}

html[data-theme="dark"]{
  --bg:#16111e; --card:#1e1830; --line:#2a2340; --line2:#332a4d;
  --tx:#ece9f6; --mut:#a79ec6; --faint:#8b82ab;
  /* В темноте роли переворачиваются: текстовый зелёный светлее заливочного,
     иначе надпись тонет в подложке. */
  --green:#2fbd77; --green-d:#4fd394; --green-l:rgba(47,189,119,.14);
  --red:#ff6b8a; --red-l:rgba(255,107,138,.13);
  --amber:#ffcf5c; --amber-d:#d9a93c; --amber-l:rgba(255,207,92,.13);
  --amb:#ffcf5c; --amb-l:rgba(255,207,92,.13);
  --blue:#7c9dff; --blue-l:rgba(124,157,255,.14);
  --gray-l:rgba(255,255,255,.06);
  --acc:#8b6dff; --acc2:#a98cff; --accsoft:rgba(169,140,255,.15);
  --blue-l:rgba(124,157,255,.14);
  color-scheme:dark;
}

/* Места, где белый вписан прямо в правило инструмента: шапка, карточки, поля ввода,
   таблицы. Перебираем их по общим для мастерской именам классов — иначе на тёмном фоне
   остаются белые пятна. */
html[data-theme="dark"] body{background:var(--bg); color:var(--tx)}
html[data-theme="dark"] .hdr,
html[data-theme="dark"] header,
html[data-theme="dark"] .topbar{background:var(--card); border-color:var(--line)}
html[data-theme="dark"] .card,
html[data-theme="dark"] .user,
html[data-theme="dark"] .reg,
html[data-theme="dark"] .pub,
html[data-theme="dark"] .box,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .sec,
html[data-theme="dark"] .navbtn,
html[data-theme="dark"] .pill{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:var(--faint)}
html[data-theme="dark"] table th{background:var(--card); color:var(--mut)}
html[data-theme="dark"] table td{border-color:var(--line)}
html[data-theme="dark"] a{color:var(--acc2)}
html[data-theme="dark"] hr{border-color:var(--line)}
/* Картинки-схемы и значки, нарисованные чёрным по белому, в темноте гаснут —
   слегка поднимаем им яркость, не трогая фотографии товара. */
html[data-theme="dark"] img[src$=".svg"]{filter:brightness(1.08)}


/* Поштучно: места, где белый вписан прямо в правило инструмента. Список собран обходом
   всех страниц — искали правила с background:#fff. Меняется ТОЛЬКО цвет: рамки, отступы
   и размеры остаются теми, что задумал инструмент. */
html[data-theme="dark"] .addbox,
html[data-theme="dark"] .badge,
html[data-theme="dark"] .bal,
html[data-theme="dark"] .bar,
html[data-theme="dark"] .btn.gh,
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .btn.sec,
html[data-theme="dark"] .card,
html[data-theme="dark"] .ch,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .cmodal,
html[data-theme="dark"] .col-h,
html[data-theme="dark"] .collage,
html[data-theme="dark"] .cols-btn,
html[data-theme="dark"] .crumb,
html[data-theme="dark"] .cst,
html[data-theme="dark"] .dfoot,
html[data-theme="dark"] .dh,
html[data-theme="dark"] .dpanel,
html[data-theme="dark"] .drawer,
html[data-theme="dark"] .drw,
html[data-theme="dark"] .dtile.wide,
html[data-theme="dark"] .empty,
html[data-theme="dark"] .ev,
html[data-theme="dark"] .faceadd,
html[data-theme="dark"] .fmodal-card,
html[data-theme="dark"] .fstage,
html[data-theme="dark"] .gpage,
html[data-theme="dark"] .grpmodal,
html[data-theme="dark"] .grp-tbl,
html[data-theme="dark"] .hdr,
html[data-theme="dark"] .iconpop,
html[data-theme="dark"] .izd-row,
html[data-theme="dark"] .jback,
html[data-theme="dark"] .jch,
html[data-theme="dark"] .jch-key,
html[data-theme="dark"] .jdd,
html[data-theme="dark"] .jlock,
html[data-theme="dark"] .jpg,
html[data-theme="dark"] .jsb,
html[data-theme="dark"] .jtb,
html[data-theme="dark"] .jwrap,
html[data-theme="dark"] .kl,
html[data-theme="dark"] .kpi,
html[data-theme="dark"] .lbladd,
html[data-theme="dark"] .lead,
html[data-theme="dark"] .menu,
html[data-theme="dark"] .mhead,
html[data-theme="dark"] .micbtn,
html[data-theme="dark"] .mkb,
html[data-theme="dark"] .mkm,
html[data-theme="dark"] .mod,
html[data-theme="dark"] .modal,
html[data-theme="dark"] .msel,
html[data-theme="dark"] .mv-row,
html[data-theme="dark"] .nah,
html[data-theme="dark"] .nap,
html[data-theme="dark"] .navbtn,
html[data-theme="dark"] .nx,
html[data-theme="dark"] .oknoot,
html[data-theme="dark"] .opt,
html[data-theme="dark"] .papka,
html[data-theme="dark"] .plitka,
html[data-theme="dark"] .pop,
html[data-theme="dark"] .q,
html[data-theme="dark"] .rec,
html[data-theme="dark"] .rol,
html[data-theme="dark"] .rsa,
html[data-theme="dark"] .sbtn,
html[data-theme="dark"] .sc,
html[data-theme="dark"] .search,
html[data-theme="dark"] .sel,
html[data-theme="dark"] .sh,
html[data-theme="dark"] .skucard,
html[data-theme="dark"] .srcbtn,
html[data-theme="dark"] .stats,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .stbtn,
html[data-theme="dark"] .sw,
html[data-theme="dark"] .tab,
html[data-theme="dark"] .tablecard,
html[data-theme="dark"] .tagchip,
html[data-theme="dark"] .tb,
html[data-theme="dark"] .tbl,
html[data-theme="dark"] .tfpop,
html[data-theme="dark"] .tip,
html[data-theme="dark"] .toolbar,
html[data-theme="dark"] .top,
html[data-theme="dark"] .var,
html[data-theme="dark"] .tools,
html[data-theme="dark"] .vop{
  background:var(--card) !important; border-color:var(--line); color:var(--tx);
}
/* Заголовок строки списка не должен растворяться: у многих инструментов он красится
   тёмным по белому прямо в правиле. */
html[data-theme="dark"] .izd-row b,
html[data-theme="dark"] .izd-row strong,
html[data-theme="dark"] .card b,
html[data-theme="dark"] .row b{color:var(--tx)}

/* ── ДНЕВНАЯ ПОЛОВИНА (02.09.2026) ──
   Инструменты рисовались на холодном сером (#f6f7f8), мастерская — на тёплом кремовом,
   и переход между ними читался как переход между разными сайтами. Приводим фон, карточки,
   линии и текст к палитре мастерской. Зелёный акцент оставляем: он и в знаке ВК зелёный,
   и в кнопках инструментов, — менять его значило бы перекрасить половину интерфейса без нужды. */
html[data-theme="light"]{
  --bg:#f6efe2; --card:#fffcf4; --line:rgba(70,55,40,.12); --line2:rgba(70,55,40,.2);
  /* Тихий цвет был слишком тих: 2,6 против порога 3 — подписи и числа на кремовом
     фоне читались с трудом, а на солнце пропадали. Поднят до 3,8. */
  --tx:#2a2431; --mut:#7d7361; --faint:#7d735f;
  --gray-l:rgba(70,55,40,.06);
  color-scheme:light;
}
html[data-theme="light"] body{background:var(--bg); color:var(--tx)}
html[data-theme="light"] .hdr,
html[data-theme="light"] header,
html[data-theme="light"] .topbar{background:var(--card); border-color:var(--line)}


/* ── НИКАКОЙ «РЕЗИНКИ» СВЕРХУ (08.09.2026) ──
   На телефоне потяг вниз от верха страницы срабатывал как «обновить»: человек хотел
   разглядеть шапку, а инструмент перезагружался и терял место в списке. Плюс сама
   пружина уводила вёрстку и открывала фон под страницей.
   overscroll-behavior отключает и то, и другое: перетяг за край больше ничего не значит,
   а прокрутка внутри страницы и внутри её собственных списков работает как прежде.
   Правило общее — nginx подставляет этот файл на каждую страницу, включая будущие. */
html{overscroll-behavior:none}
body{overscroll-behavior-y:contain}


/* ── ЗАГОЛОВОК РАЗДЕЛА — ОДНОЙ СТРОКОЙ (13.09.2026) ──
   Крупный заголовок по центру и пояснение абзацем под ним съедали треть экрана телефона,
   а объясняли то, что и так видно ниже: под ними всегда лежит сам список или форма.
   Теперь у каждого раздела одна строка: название и рядом короткое пояснение мелким
   шрифтом. Правило общее для мастерской — этот файл nginx подставляет на каждую
   страницу, включая инструменты, которых ещё нет.

   Разметка:
     <div class="zagpoisk">
       <h1 class="stitle uzko">Журнал<span class="sub-in">что и когда смотрели</span></h1>
       <input class="kisk" placeholder="найти…">   <!-- если поиск нужен -->
     </div>  */
.zagpoisk{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.zagpoisk .stitle.uzko,
h1.stitle.uzko{margin:0;font-size:20px;font-weight:800;text-align:left;
  display:flex;align-items:baseline;gap:9px;flex:none;line-height:1.25}
.sub-in{font-size:13px;font-weight:400;color:var(--mut,#7d7361);line-height:1.35}
.zagpoisk input{flex:1 1 200px;min-width:150px;margin:0}
@media (max-width:520px){
  .zagpoisk .stitle.uzko,h1.stitle.uzko{font-size:18px}
  .sub-in{font-size:12.5px}
}


/* ─── ДОБОР ПО НАХОДКАМ ПРОВЕРКИ (14.09.2026) ───────────────────────────────
   Это заплаты для инструментов, написанных ДО канона имён: у них цвета вписаны
   числом, и тема о них не знает. Найдены не глазами, а /root/temy_proba.py —
   он меряет контраст отрисованного и светлые пятна на тёмном.

   Новым инструментам сюда добавлять нечего: они берут цвета из канона выше,
   и обе темы получаются сами. Если проверка снова что-то нашла — правильный
   ответ «перевести инструмент на канон», а не «дописать имя в этот список». */

/* Переключатели вида и наборов: белая кнопка посреди тёмной страницы. */
html[data-theme="dark"] .vidbtn,
html[data-theme="dark"] .nbtn,
html[data-theme="dark"] .view,
html[data-theme="dark"] .view button{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] .vidbtn.on,
html[data-theme="dark"] .nbtn.on,
html[data-theme="dark"] .view button.on{background:var(--green-l); border-color:var(--green); color:var(--green-d)}

/* Жёлтые плашки-предупреждения: светлый фон был вписан числом. */
html[data-theme="dark"] .warn,
html[data-theme="dark"] .note,
html[data-theme="dark"] .lead{background:var(--amber-l); border-color:var(--amber-d); color:var(--tx)}

/* Оранжевая отметка «открыто всем» в доступах. */
html[data-theme="dark"] .pub .on,
html[data-theme="dark"] label.on{background:var(--amber-l); color:var(--tx)}

/* Цвет текста на кнопке считается ОТ ЗАЛИВКИ, а не по привычке. В темноте зелёный
   становится светлее (#2fbd77) — белые буквы на нём дают 2,4 и плывут. Значит на
   светлой заливке текст тёмный. Это моя же поспешная правка часом раньше поставила
   сюда белый и сделала хуже — проверка показала на следующем прогоне. */
/* Тёмный текст — ТОЛЬКО на светлой зелёной заливке. Правило «все .btn» было слишком
   широким: оно перекрасило кнопки мастерской, у которых заливка фиолетовая или
   вообще прозрачная, и «Отмена» с «Очистить корзину» стали нечитаемыми. Цвет текста
   всегда считается от ЗАЛИВКИ этой кнопки, а не от того, что она называется .btn. */
html[data-theme="dark"] .btn:not(.pri):not(.ghost):not(.gh):not(.sec):not(.danger):not(.acc){color:#16111e}
html[data-theme="dark"] .btn.danger{color:var(--red)}
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .btn.gh,
html[data-theme="dark"] .btn.sec{color:var(--tx)}
/* А вот главная кнопка с фиолетовой заливкой — светлая: на насыщенном фиолетовом
   тёмные буквы тонут. Правило выше её задело, и «Новый чат» стал нечитаемым —
   поймано хозяином сразу после публикации. Цвет текста всегда считается от ЗАЛИВКИ,
   и у разных кнопок она разная. */
html[data-theme="dark"] .btn.pri,
html[data-theme="dark"] .btn.acc,
html[data-theme="dark"] .btn.primary{color:#fff}
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .btn.gh,
html[data-theme="dark"] .btn.sec{color:var(--tx)}

/* Счётчики и мелкие числа рядом с названием — брали самый тихий цвет и пропадали. */
html[data-theme="dark"] .nbtn i,
html[data-theme="dark"] .vidbtn i,
html[data-theme="dark"] .cnt,
html[data-theme="dark"] .jb{color:var(--mut)}

/* Кнопка «Показать все…» в Журнале. */
html[data-theme="dark"] .jmore,
html[data-theme="dark"] #jmore,
html[data-theme="dark"] .showall{background:var(--card); border-color:var(--line); color:var(--tx)}

/* Белый текст на оранжевой заливке даёт контраст 2,4 — читается плохо в любой теме.
   На оранжевом текст должен быть ТЁМНЫМ: это не вкусовщина, а разница между
   «видно» и «не видно» на солнце. */
.save, .btn.warn, button.oranzh{color:#2a2431}
html[data-theme="dark"] .save{color:#2a2431}

/* Кнопка журнала со счётчиком: белая заливка вписана числом. */
html[data-theme="dark"] .zhurn,
html[data-theme="dark"] #jbtn,
html[data-theme="dark"] .navbtn#jbtn{background:var(--card); border-color:var(--line); color:var(--tx)}

/* Команды и куски кода внутри текста. Подложка у них вписана числом (#eef2f5), и в
   тёмной теме получалась светлая плашка со светлыми буквами — не читается вовсе.
   Поймано хозяином 14.09.2026 в документации Приёмщика. */
html[data-theme="dark"] code,
html[data-theme="dark"] kbd,
html[data-theme="dark"] samp,
html[data-theme="dark"] pre{background:rgba(255,255,255,.07); color:var(--tx); border-color:var(--line)}
html[data-theme="dark"] pre code{background:none}

/* Три последних места, найденных проверкой (14.09.2026).
   Все — один и тот же случай: цвет вписан числом, а тема о нём не знает. */

/* Кнопка «Показать все идеи» в Журнале — белая заливка без класса. */
html[data-theme="dark"] .gall button,
html[data-theme="dark"] button[data-g]{background:var(--card); border-color:var(--line); color:var(--tx)}

/* Счётчики у вкладок Приёмщика: брали самый тихий цвет и пропадали. */
html[data-theme="dark"] .vidbtn i,
html[data-theme="dark"] .vidbtn span i{color:var(--mut)}

/* Янтарный текст в темноте должен быть светлее заливочного — как и зелёный. */
html[data-theme="dark"]{--amber-d:#ffd97a}

/* Номера записей в списке разговоров: самый тихий цвет на тёмном давал 2,3 — цифры,
   по которым человек ищет чат, читались хуже названий. */
html[data-theme="dark"] .eno{color:var(--mut)}

/* Янтарный текст «16 дн» в Мониторе — впритык даже после общего подъёма. */
html[data-theme="dark"] .v.warn,
html[data-theme="dark"] .met .v.warn,
html[data-theme="dark"] .cell .v.warn{color:#ffd97a}

/* Счётчики Приёмщика: правило по .vidbtn i не сработало — там простой <i> внутри кнопки. */
html[data-theme="dark"] .vid i,
html[data-theme="dark"] .navpolosa i,
html[data-theme="dark"] .navbtn i{color:var(--mut)}

/* ─── ПРИЁМЩИК: карточки разделов и картотеки (14.09.2026) ───────────────────
   Найдено после того, как проверка научилась ходить по РАЗДЕЛАМ, а не только по
   первому экрану: белые карточки мер, листы отчёта и кнопки «Взять» оставались
   светлыми пятнами, а подписи внутри них сливались. */
html[data-theme="dark"] .kraz,
html[data-theme="dark"] .kraz.svodka,
html[data-theme="dark"] .krazc,
html[data-theme="dark"] .vzyat,
html[data-theme="dark"] .kb,
html[data-theme="dark"] .kb.da,
html[data-theme="dark"] .list,
html[data-theme="dark"] .otchet,
html[data-theme="dark"] .razdel,
html[data-theme="dark"] .napr{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] .vyv,
html[data-theme="dark"] .kraz .vyv,
html[data-theme="dark"] .kraz i,
html[data-theme="dark"] .krazc i{color:var(--mut)}
html[data-theme="dark"] .ur.krit{color:var(--red)}
html[data-theme="dark"] .ur.vazhno{color:var(--amber-d)}
html[data-theme="dark"] .kraz b,
html[data-theme="dark"] .krazc b{color:var(--tx)}

/* Остатки того же разбора: «советы» голубым, счётчики в шапке дня, жёлтая метка
   в документации и кнопка «Взять». Все — цвет числом, тема о них не знала. */
html[data-theme="dark"] .ur.sovet{color:#8fc6ff}
html[data-theme="dark"] .zh i,
html[data-theme="dark"] .den i,
html[data-theme="dark"] summary i{color:var(--mut)}
html[data-theme="dark"] .kb.da{color:var(--green-d)}
html[data-theme="dark"] .zheltaya,
html[data-theme="dark"] b.zhelt{color:var(--amber-d)}

/* ─── ЛИСТЫ И КАРТОЧКИ ОТЧЁТА ПРИЁМЩИКА (14.09.2026) ────────────────────────
   Отчёт открывается по своему адресу, и проверка до него не доходила — беду
   показал хозяин скриншотом: белые листы «Найдено · В работе · Готово», белые
   карточки разделов меры и белые кнопки обновления. У всех фон вписан числом. */
html[data-theme="dark"] .lk,
html[data-theme="dark"] .sc,
html[data-theme="dark"] .rz,
html[data-theme="dark"] .krug.seraya,
html[data-theme="dark"] .izd,
html[data-theme="dark"] .row,
html[data-theme="dark"] .strok{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] .lk.on{background:var(--green-l); border-color:var(--green); color:var(--green-d)}
html[data-theme="dark"] .rz .rimya{color:var(--tx)}
html[data-theme="dark"] .rz .rves,
html[data-theme="dark"] .rz .rvopros,
html[data-theme="dark"] .lk i{color:var(--mut)}

/* Круглые кнопки в полосе действий (обновить, скачать) — те же белые пятна. */
html[data-theme="dark"] .rfb,
html[data-theme="dark"] .krug,
html[data-theme="dark"] .navbtn.krug,
html[data-theme="dark"] button.ikon{background:var(--card); border-color:var(--line); color:var(--tx)}

/* ─── ПОСЛЕДНИЕ ПЯТЬ МЕСТ (14.09.2026) ──────────────────────────────────────
   Правила выше до них не долетали: у самого инструмента селектор сильнее (он
   пишет .met .v.warn, а не .v.warn). Спорить силой некрасиво, но верно: цвет
   темы обязан побеждать цвет, вписанный числом. Добавлен вес через body. */
html[data-theme="dark"] body .eno{color:var(--mut)}
html[data-theme="dark"] body .ur.sovet{color:#8fc6ff}
html[data-theme="dark"] body .kb.da{color:#5ee0a2}
html[data-theme="dark"] body .met .v.warn,
html[data-theme="dark"] body .cell .v.warn,
html[data-theme="dark"] body .v.warn{color:#ffd97a}
html[data-theme="dark"] body .vidbtn i,
html[data-theme="dark"] body .vid i,
html[data-theme="dark"] body .navbtn i,
html[data-theme="dark"] body .zagpoisk i{color:var(--mut)}
html[data-theme="dark"] body .zheltaya,
html[data-theme="dark"] body b.zhelt,
html[data-theme="dark"] body .dok b.zh{color:#ffd97a}

/* Беда была НЕ в цвете букв, а в плашке под ними: светлый кружок счётчика тема не
   красила, и светлый текст ложился на светлое. Красим сам кружок — тогда и текст
   поверх него можно оставить тихим. Разбор 14.09.2026: замер показал фон
   rgb(242,244,247) под буквами цвета --mut. */
html[data-theme="dark"] body .den i,
html[data-theme="dark"] body .zagpoisk i,
html[data-theme="dark"] body .krug.seraya,
html[data-theme="dark"] body .schet i{background:var(--gray-l); color:var(--tx)}
html[data-theme="dark"] body .ur.sovet{background:rgba(124,157,255,.16); color:#9cc9ff}
html[data-theme="dark"] body .ur.krit{background:var(--red-l); color:var(--red)}
html[data-theme="dark"] body .ur.vazhno{background:var(--amber-l); color:#ffd97a}

/* Номер записи в списке разговоров: селектор инструмента «.row .eno» сильнее нашего,
   поэтому правило пишется тем же весом. Номера — то, чем человек ищет чат; они не
   могут быть тише названия. */
html[data-theme="dark"] body .row .eno{color:var(--mut)}
html[data-theme="light"] body .row .eno{color:var(--mut)}

/* Три последних: янтарный срок, жёлтая метка в документации и кнопка «Взять». */
html[data-theme="dark"] body .met .v.warn{color:#ffe08a}
html[data-theme="dark"] body .dok b,
html[data-theme="dark"] body .dokstr b{color:var(--tx)}
html[data-theme="dark"] body .kb.da{color:#7ff0b6}

/* Текст на зелёной кнопке: белый даёт 3,1 — для мелкой кнопки мало. Тёмный на том же
   зелёном даёт 4,5 и читается уверенно в обеих темах. */
body .kb.da{color:#08331f}

/* ─── ВСПЛЫВАЮЩИЕ ОКНА (14.09.2026) ─────────────────────────────────────────
   Окна открываются по действию, и проверка до них не доходила — беду показал
   хозяин: в окне передачи белый круг оценки с бледным числом внутри и белый
   крестик закрытия. Тот же случай: фон вписан числом.

   Правило для окон то же, что для страниц: поверхность — var(--card), тихий
   текст — var(--mut). Отдельно кружки и крестики: у них свой фон, и его надо
   красить, а не осветлять буквы поверх. */
html[data-theme="dark"] body .perdb,
html[data-theme="dark"] body .krug,
html[data-theme="dark"] body .oknoot,
html[data-theme="dark"] body .okno .karta,
html[data-theme="dark"] body .okno .box,
html[data-theme="dark"] body .spisok,
html[data-theme="dark"] body input.tin{background:var(--card); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] body .perdb b{color:var(--tx)}
html[data-theme="dark"] body .perdb span{color:var(--mut)}

/* Круглые кнопки полосы действий: обновить и скачать. */
html[data-theme="dark"] body .navdel,
html[data-theme="dark"] body .navdela button,
html[data-theme="dark"] body .zakryt,
html[data-theme="dark"] body button.krestik{background:var(--card); border-color:var(--line); color:var(--tx)}

/* Остаток полосы достижений: белый хвост кричал громче самой полосы. */
html[data-theme="dark"] body .shk,
html[data-theme="dark"] body .polosa,
html[data-theme="dark"] body .bar-bg{background:var(--gray-l)}

/* Нижняя панель выбора («Починить») и плашки состояния находки: белая полоса во всю
   ширину экрана и светлые ярлычки со светлым текстом. Оба фона вписаны числом. */
html[data-theme="dark"] body .vybpanel{background:var(--card); border-color:var(--line)}
html[data-theme="dark"] body .vybpanel .razr,
html[data-theme="dark"] body .vybpanel .metla{background:var(--gray-l); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] body .vybpanel .otpr{color:#08331f}
html[data-theme="dark"] body .sost{background:var(--gray-l); color:var(--tx)}
html[data-theme="dark"] body .sost.zhdet,
html[data-theme="dark"] body .sost.ozhidaet{background:var(--amber-l); color:#ffd97a}
html[data-theme="dark"] body .sost.pochineno,
html[data-theme="dark"] body .sost.sdelano{background:var(--green-l); color:#5ee0a2}

/* Окно подтверждения Приёмщика («Починить 1 место?») — белая карточка, вписанная
   числом; заголовок в ней становился бледным на светлом. */
html[data-theme="dark"] body .oknoteh,
html[data-theme="dark"] body .oknoK{background:var(--card); color:var(--tx)}
html[data-theme="dark"] body .oknotx{color:var(--tx)}
html[data-theme="dark"] body .oknoX{background:var(--gray-l); color:var(--mut)}
html[data-theme="dark"] body .oknoot{background:var(--gray-l); border-color:var(--line); color:var(--tx)}
html[data-theme="dark"] body .oknoda{color:#08331f}

/* У МАСТЕРСКОЙ СВОЯ ПАЛИТРА — общий слой её кнопки не трогает. Она умеет обе темы
   с самого начала (она их и придумала), и её .btn — это прозрачная поверхность с
   обычным текстом, а не зелёная заливка. Общее правило про тёмный текст на светлой
   зелени перекрасило её «Отмену» в нечитаемую. Вес #app перебивает общее правило. */
/* Окна мастерской живут ВНЕ #app (они поверх всего), поэтому одного #app мало —
   перечисляем и их. Замер показал: у «Отмены» цвет остался тёмным, потому что
   кнопка не внутри #app, а в слое окна. */
html[data-theme="dark"] #app .btn,
html[data-theme="dark"] #shDlg .btn,
html[data-theme="dark"] .shdlg .btn,
html[data-theme="dark"] #psToast .btn,
html[data-theme="dark"] .ovl .btn{color:var(--tx)}
html[data-theme="dark"] #app .btn.pri,
html[data-theme="dark"] #shDlg .btn.pri{color:#fff}
html[data-theme="dark"] #app .btn.danger,
html[data-theme="dark"] #shDlg .btn.danger{color:var(--err,#ff6b8a)}
