/* ==================================================================
   Единая читаемая шкала размеров (Times New Roman).
   Основной текст — 14 px, подписи и служебный текст — не мельче 12 px.
   Подключается последним на всех страницах. Инициалы в кружках-аватарах
   не трогаем: это не текст для чтения, и в кружок крупнее не влезет.
   ================================================================== */

/* Боковое меню и шапка */
.today-side-group,
summary.today-side-group,
.pusk-side-brand span,
.today-side nav a em,
kbd {
  font-size: 12px !important;
}

/* Заголовки таблиц */
th {
  font-size: 12px !important;
}

/* Календарь */
.calm-num,
.calm-wd,
.cald-wd,
.cald-mon,
.calm-place,
.calm-add,
.calm-ev,
.calm-time,
.cal-nav a,
.pusk-cal-filter-chip span,
.pusk-cal-filter-more summary,
.pusk-now-line em {
  font-size: 12px !important;
}

/* «Сегодня»: фильтры задач, переключатели, подписи карточек */
.today-task-filters button,
.today-task-filters b,
.today-task-sort span,
.today-layout-switch :is(a, button),
.today-card-title p,
.pusk-ws-col-label,
.pusk-ws-col-count,
.pusk-ws-col-empty {
  font-size: 12px !important;
}

/* Сводки, плитки, счётчики, вкладки разделов */
.hub-note,
.hub-value,
.tile-label,
.tile-note,
.count,
.rail-count,
.rail-title,
.pusk-case-chip,
.pusk-case-feed-kind,
.pusk-mail-tab,
.when,
span.n {
  font-size: 12px !important;
}

/* Что угодно с классом «small» — не мельче 12 px */
.small,
small {
  font-size: max(12px, 0.86em) !important;
}

/* Точечно — там, где старые слои задают размер с высокой специфичностью */
html body .pusk-cal-body a.calm-num,
html body a.calm-num,
html body label.today-group,
html body a.today-all,
html body span.pusk-mail-status,
html body span.pusk-case-badge,
html body span.pusk-case-part-tag {
  font-size: 12px !important;
}

html body textarea {
  font-size: max(13px, 1em) !important;
}

/* ==================================================================
   Единые размеры по ролям (компьютер). Проверено обходом всех страниц:
   кнопки были 11–16 px, поля 12–16, ячейки 12–16, плашки 11–16.
   Теперь:  заголовок раздела 28 · h2 20 · h3 17 · название строки
   в списке 15 · текст, кнопки, поля, ячейки 14 · подписи, время,
   шапки таблиц, плашки 12.
   :not(#_):not(#__) — чтобы перебить старые слои с «html body …:not(#_)».
   Телефон (m-app и узкий экран) не трогаем: там поля 16 px, иначе
   iPhone приближает страницу при вводе.
   ================================================================== */
@media (min-width: 761px) {
  html body:not(.m-app) main :is(button, .btn, .btn-main, .btn-plain, .link-btn, .ghost,
      a.today-outline, a.today-primary, summary.today-outline, summary.btn-plain,
      input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea):not([class*="avatar"]):not([class*="star"]):not(.tickbox):not([class*="tick"]):not(#_):not(#__) {
    font-size: 14px !important;
  }
  html body:not(.m-app) main td:not(.small):not(#_):not(#__) { font-size: 14px !important; }
  html body:not(.m-app) main :is(th, td.small, dt):not(#_):not(#__) { font-size: 12px !important; }

  /* Плашки, метки, счётчики: 12 px, текст строго по центру плашки */
  html body:not(.m-app) main :is(span, a, b, em, small, mark, strong):is(.tag, .pill, .chip, .badge, .count, .n,
      [class*="-badge"], [class*="-pill"], [class*="-chip"], [class*="-tag"], [class*="-count"], [class*="-stage"]):not([class*="avatar"]):not(#_):not(#__) {
    font-size: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle;
    line-height: 1.25 !important;
    gap: 4px;
    white-space: nowrap;   /* плашка в одну строку: были 22 и 36 px высотой рядом */
  }

  /* Заголовки внутри страниц */
  html body:not(.m-app) main h1:not(#_):not(#__) { font-size: 28px !important; line-height: 1.2; }
  html body:not(.m-app) main h2:not(#_):not(#__) { font-size: 20px !important; line-height: 1.25; }
  html body:not(.m-app) main h3:not(#_):not(#__) { font-size: 17px !important; line-height: 1.3; }
  html body:not(.m-app) main :is(h4, h5, h6):not(#_):not(#__) { font-size: 14px !important; font-weight: 700; }
  /* Подписи под строкой: кто, когда, примечание, роль — 12 px (были 12, 13 и 11) */
  html body:not(.m-app) main :is(.muted, .small, small, .sub,
      [class*="-sub"], [class*="-time"], [class*="-when"], [class*="-note"], [class*="-meta"],
      [class*="-label"], [class*="-role"], [class*="-dir"], [class*="-judge"], [class*="-noclient"], [class*="-noamt"],
      [class*="-due"], .d):not(h1):not(h2):not(h3):not(button):not(input):not(select):not(textarea):not([class*="avatar"]):not(#_):not(#__) {
    font-size: 12px !important;
  }
  /* Ссылки-действия, вкладки, раскрывашки — как кнопки, 14 px */
  html body:not(.m-app) main :is(summary, [class*="textbtn"], [class*="-btn"], .page-tabs a, a.on, [class*="tabs"] a):not([class*="avatar"]):not(#_):not(#__) {
    font-size: 14px !important;
  }
  /* Название строки в списке — 15 px (были 14, 15 и 16) */
  html body:not(.m-app) main :is(.pusk-feed-stream-title, .pusk-cases-title, .sh-name, .ph-name, .cl-name > a, a.ct-num,
      .trow-title, .pusk-mail-subject, .pusk-tasks-title):not(#_):not(#__) {
    font-size: 15px !important;
  }
}

/* ==================================================================
   Раскладка: блоки в одном ряду — одной высоты (как в тетрисе), без дыр.
   Сетки и ряды, где рядом стоят карточки, растягивают их по самой
   высокой; содержимое остаётся сверху.
   ================================================================== */
@media (min-width: 761px) {
  html body:not(.m-app) main :is(div, section):has(> :is(.panel, .card, article, [class*="-card"]) + :is(.panel, .card, article, [class*="-card"])):not(.pusk-blocks-list):not(#_) {
    align-items: stretch;
  }
  /* «Заявки ЛОГИКА»: на ноутбуке таблица сжималась до 695 px, колонки
     по 56 px — дата и сумма налезали на соседей. Держим ширину, лишнее —
     прокруткой вбок; подпись комментария больше не рвётся по буквам */
  html body main .pusk-logic-table-wrap:not(#_):not(#__) { overflow-x: auto !important; max-width: 100%; }
  html body main .pusk-logic-table:not(#_) { min-width: 1100px; }
  html body main .pusk-logic-thread-item .thread-who:not(#_) {
    flex-wrap: wrap; column-gap: 6px; overflow-wrap: normal; word-break: normal;
  }
}

/* ==================================================================
   Телефон. Платёжный календарь: месяц складывается в список дней, а
   высота ячейки оставалась от сетки (76 px) — платежи дня наползали
   на следующий день. В списке день растёт по содержимому
   ================================================================== */
@media (max-width: 760px) {
  html body table.fm-month.stack td:not(#_):not(#__) { height: auto !important; min-height: 0 !important; }
}
html body.m-app table.fm-month.stack td:not(#_):not(#__) { height: auto !important; min-height: 0 !important; }
/* Платёжный календарь: в сетке месяца — короткое название (полное — в подсказке),
   в списке на телефоне — полностью */
.fm-full { display: none; }
@media (max-width: 760px) { html body .fm-month.stack .fm-short { display: none; } html body .fm-month.stack .fm-full { display: inline; } }
html body.m-app .fm-month.stack .fm-short { display: none; }
html body.m-app .fm-month.stack .fm-full { display: inline; }
/* Телефон: заголовок раздела со ссылками и стрелкой не уходит за край */
@media (max-width: 760px) { html body :is(.sec-head, .sec-head > *):not(#_) { flex-wrap: wrap; row-gap: 6px; max-width: 100%; } }
html body.m-app :is(.sec-head, .sec-head > *):not(#_) { flex-wrap: wrap; row-gap: 6px; max-width: 100%; }

/* Карточка дела, «⚙ Вкладки»: вкладку убрали — её блок на «Обзоре» скрыт,
   а оставшийся сосед по ряду занимает всю ширину, без пустой половины */
html body .pusk-case-top-row:has(> [data-tab-block][hidden]):not(#_):not(#__),
html body .pusk-case-overview-mini:has(> [data-tab-block][hidden]):not(#_):not(#__) {
  grid-template-columns: minmax(0, 1fr) !important;
}
html body :is(.pusk-case-top-row, .pusk-case-overview-mini):not(:has(> [data-tab-block]:not([hidden]))):not(#_) { display: none !important; }
