/* ============================================================================
   ds-avatar-fallback — ЕДИНСТВЕННОЕ описание аватара-заглушки (инициалы вместо фото).

   Зачем. Каждая поверхность задавала кегль инициалов сама, и они разъехались:

     лента .pcard__avatar        34px → 12px
     комментарий .fcm-av         32px → 11px
     ответ .fcm-row--reply       26px → 10px
     общий чат .cc-av            46px → 17px   ← крупнее всех, выбивалось из строки
     ЛС .dm-av                   46px → наследованный, на оранжевом градиенте
     карточка .uc-av             92px → 30px

   Здесь описан ОДИН контракт: поверхность объявляет только свой размер через
   --ds-av-size, а кегль, вес, фон и рамку выводит компонент. Поэтому «один огромный
   font-size на все поверхности» невозможен по построению, а новая поверхность получает
   правильную типографику, объявив одну переменную.

   Пропорция 0.36 от диаметра даёт по спецификации:
     24px → 8.6   28px → 10.1   34px → 12.2   40px → 14.4   46px → 16.6   48px → 17.3
   Нижняя и верхняя границы (clamp) страхуют крайние размеры: на 24px буквы не
   становятся нечитаемыми, на 92px — не превращаются в плакат.

   Рамка нейтральная и тонкая. Premium-обводка рисуется ПОВЕРХ, через box-shadow
   (см. is-premium на каждой поверхности), поэтому двойного border не возникает:
   box-shadow не участвует в раскладке и не складывается с рамкой.
   ========================================================================== */

.ds-av-fallback{
  /* Размер задаёт поверхность. 40px — безопасное значение по умолчанию. */
  --ds-av-size:40px;
  /* Тонкая нейтральная рамка и спокойный фон. Оба цвета — из общих токенов темы,
     поэтому светлая и тёмная тема обслуживаются без отдельных правил. */
  --ds-av-border:var(--ds-panel-bd,rgba(127,138,152,.28));
  --ds-av-bg:var(--ds-panel-2,rgba(127,138,152,.16));
  --ds-av-ink:var(--ds-muted,#8f96a3);

  box-sizing:border-box;
  background:var(--ds-av-bg);
  border:1px solid var(--ds-av-border);
  color:var(--ds-av-ink);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:600;
  line-height:1;
  letter-spacing:.01em;
  /* Кегль пропорционален диаметру и ограничен снизу/сверху. */
  font-size:clamp(9px,calc(var(--ds-av-size) * .36),22px);
  /* Инициалы не выделяются и не переносятся: строка не может подрасти из-за них. */
  user-select:none;
  white-space:nowrap;
}

/* Фото перекрывает заглушку целиком — рамка и фон под ним не видны. */
.ds-av-fallback:has(img){background:none}

/* ---- Поверхности-адоптеры -------------------------------------------------
   Каждая строка объявляет ТОЛЬКО свой диаметр — типографику, фон и рамку берёт контракт
   выше. Список держится здесь намеренно: так весь контракт заглушки виден в одном файле,
   а поверхностям не нужно ни менять разметку, ни держать свои копии правил.
   Файл подключается после остальных стилей, поэтому перебивает прежние значения кегля. */
.pcard__avatar,                                  /* лента, 34px */
.fcm-av,                                         /* комментарий, 32px */
.pc-fr-av, .pc-fr-favtile__av,                   /* друзья / избранное, 44 и 68px */
.dm-av,                                          /* ЛС и список диалогов, 46px */
.cc-av,                                          /* общий чат, 34px (в списке ЛС 46px) */
.uc-av,                                          /* карточка пользователя, 92px */
.support-admin__thread-avatar,                   /* техподдержка, 44px */
.admin-users-page .admin-users-avatar,           /* админ-карточка, 78px */
.pc-avatar, .pc-pub-av{                          /* профиль: кабинет и публичный, 96px */
  background:var(--ds-av-bg,var(--ds-panel-2,rgba(127,138,152,.16)));
  border:1px solid var(--ds-av-border,var(--ds-panel-bd,rgba(127,138,152,.28)));
  color:var(--ds-av-ink,var(--ds-muted,#8f96a3));
  font-family:Arial,Helvetica,sans-serif;
  font-weight:600;
  line-height:1;
  font-size:clamp(9px,calc(var(--ds-av-size,40px) * .36),22px);
  box-sizing:border-box;
}
.pcard__avatar{--ds-av-size:34px}
.fcm-av{--ds-av-size:32px}
.fcm-row--reply .fcm-av{--ds-av-size:26px}
.pc-fr-av{--ds-av-size:44px}
.pc-fr-favtile__av{--ds-av-size:68px}
.dm-av{--ds-av-size:46px}
.cc-av{--ds-av-size:34px}
.cc-dm .cc-av{--ds-av-size:46px}
.uc-av{--ds-av-size:92px}
.support-admin__thread-avatar{--ds-av-size:44px}
.admin-users-page .admin-users-avatar{--ds-av-size:78px}
.pc-avatar,.pc-pub-av{--ds-av-size:96px}

/* Фото перекрывает заглушку: под ним ни фона, ни рамки не видно. */
.pcard__avatar:has(img), .fcm-av:has(img), .pc-fr-av:has(img), .pc-fr-favtile__av:has(img),
.dm-av:has(img), .cc-av:has(img), .uc-av:has(img), .support-admin__thread-avatar:has(img),
.admin-users-page .admin-users-avatar:has(img), .pc-avatar:has(img), .pc-pub-av:has(img){
  background:none;
}
