/* Moderator workspace refinement for Figma frames 626/627/628. */

.admin-portal {
  --admin-panel: rgba(24, 24, 24, .84);
  --admin-control: rgba(32, 32, 32, .84);
  --admin-control-hover: rgba(41, 41, 41, .9);
  --admin-card: rgba(32, 32, 32, .86);
  --admin-red: #ef3d3f;
  --admin-text: #f0f0f0;
  --admin-muted: rgba(240, 240, 240, .55);
}

/* Only the arrow is circular. Text labels must never inherit legacy icon rules. */
.admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) .filter-action-label {
  width: auto !important;
  height: auto !important;
  display: inline-block !important;
  place-items: initial !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: var(--font-display) !important;
  font-size: inherit !important;
  line-height: 1 !important;
}

.admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) .filter-action-icon {
  width: 22rem !important;
  height: 22rem !important;
  flex: 0 0 22rem;
  display: grid !important;
  place-items: center !important;
  border: 1.5rem solid currentColor !important;
  border-radius: 50% !important;
  background: transparent !important;
  font-family: var(--font-ui) !important;
  font-size: 13rem !important;
  line-height: 1 !important;
  transform: none !important;
}

.admin-portal :is(button, a, input, select, textarea) {
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, opacity .18s ease;
}

.admin-portal button:focus {
  outline: none;
}

.admin-portal button:focus-visible {
  outline: 1rem solid var(--admin-red);
  outline-offset: 2rem;
}

.admin-portal :is(.proposal-admin-nav, .suggestion-moderation-filters, .proposal-game-tools, .proposal-filter-box[open], .admin-media-status-tabs, .admin-media-filter-box[open]) {
  background: var(--admin-panel) !important;
  box-shadow: none !important;
}

.admin-portal :is(.proposal-admin-nav, .suggestion-moderation-filters) button:not(.active):hover,
.admin-portal .admin-media-status-tabs button:not(.active):hover {
  background: var(--admin-control-hover) !important;
}

.admin-portal :is(.proposal-admin-nav, .suggestion-moderation-filters, .admin-media-status-tabs) button.active {
  color: #111 !important;
  background: var(--admin-text) !important;
}

.admin-portal .suggestion-moderation-filters button.active:focus-visible {
  outline-color: var(--admin-text);
}

.admin-portal .proposal-search {
  border: 1rem solid transparent;
  background: var(--admin-control) !important;
}

.admin-portal .proposal-search:focus-within {
  border-color: rgba(239, 61, 63, .72);
}

.admin-portal .proposal-search input::placeholder {
  color: rgba(240, 240, 240, .38);
  opacity: 1;
}

.admin-portal .proposal-game-tools > :is(.proposal-sort, .admin-catalog-filter-sort) select:hover,
.admin-portal .proposal-game-tools > :is(.proposal-sort, .admin-catalog-filter-sort) select:focus {
  background-color: var(--admin-control-hover);
}

.admin-portal .proposal-filter-box fieldset {
  margin-bottom: 28rem;
}

.admin-portal .proposal-filter-box legend,
.admin-portal .admin-catalog-filter-sort > span {
  color: var(--admin-muted);
}

.admin-portal .proposal-filter-box label {
  cursor: pointer;
}

.admin-portal .proposal-filter-box input[type="checkbox"] {
  cursor: pointer;
  accent-color: var(--admin-red);
}

.admin-portal .proposal-filter-box input[type="number"]:focus,
.admin-portal .proposal-filter-box select:focus {
  box-shadow: inset 0 0 0 1rem rgba(239, 61, 63, .72);
}

.admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) button {
  overflow: hidden;
}

.admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) button:first-child:hover {
  background: rgba(239, 61, 63, .08) !important;
}

.admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) button:last-child:hover {
  background: #ff4a4c !important;
}

.admin-portal :is(.moderation-card, .admin-catalog-card, .admin-media-card) {
  border: 1rem solid transparent;
  background: var(--admin-card) !important;
  transition: border-color .18s ease, background-color .18s ease;
}

.admin-portal :is(.moderation-card, .admin-catalog-card, .admin-media-card):hover {
  border-color: rgba(240, 240, 240, .07);
  background: #222 !important;
}

.admin-portal .admin-catalog-card-copy h3 {
  font-size: 21rem;
  line-height: 1.05;
}

.admin-portal .admin-catalog-description {
  font-size: 13rem;
  line-height: 1.4;
}

.admin-portal .admin-catalog-facts {
  font-size: 12rem;
}

.admin-portal .admin-catalog-statuses button:hover {
  color: var(--admin-text);
  background: #3b3b3b;
}

.admin-portal .admin-catalog-actions :is(a, button):hover {
  border-color: #ff5153;
}

.admin-portal .admin-catalog-actions .admin-catalog-save:hover {
  background: #ff4a4c;
}

.admin-portal .admin-catalog-actions .admin-catalog-delete:hover {
  color: #fff;
  border-color: #414141;
  background: #414141;
}

.admin-portal .admin-media-status-tabs button span {
  min-width: 0;
  width: auto;
  height: auto;
  display: inline-block;
  margin-left: 6rem;
  border: 0;
  border-radius: 0;
  color: rgba(240, 240, 240, .45);
  background: transparent;
  font-family: var(--font-ui);
  font-size: 13rem;
  line-height: 1;
  transform: none;
}

.admin-portal .admin-media-status-tabs button.active span {
  color: #666;
  background: transparent;
}

.admin-portal .admin-media-filter-box .admin-media-type-tabs button:hover {
  color: #fff;
}

.admin-portal :is(.suggestion-moderation-list, .admin-media-list) > .message {
  color: var(--admin-muted);
  background: transparent;
}

@media (max-width: 1100px) {
  .admin-portal :is(.proposal-filter-actions, .admin-catalog-filter-actions) .filter-action-label {
    transform: none;
  }

  .admin-portal .admin-catalog-card {
    border-radius: 6rem;
  }
}

/*
 * Управление → Игры → Опубликованные
 *
 * Визуальный эталон — карточка «На рассмотрении».
 * Этот слой меняет только опубликованные карточки и не трогает их HTML/JS.
 */

/* Общая защита от переполнения. */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-card,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy > *,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > *,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-card {
  width: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 4px;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side > img {
  display: block;
  box-sizing: border-box;
  max-width: 100%;
  object-fit: cover;
  background: #140606 !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy h3 {
  min-width: 0;
  max-width: 100%;
  flex: 0 0 auto !important;
  overflow: hidden;
  color: #f0f0f0;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-description {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: rgba(240, 240, 240, .55);
  overflow-wrap: anywhere;
  word-break: normal;
}

/*
 * Левая колонка повторяет injected-стили loading.js у «На рассмотрении»:
 * 12px текст, 18px пиктограммы, 4px между строками и 10px между иконкой/текстом.
 */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-facts {
  display: grid !important;
  flex-direction: initial !important;
  gap: 4px !important;
  margin-top: 6px !important;
  color: rgba(240, 240, 240, .55) !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-facts > span {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0;
  min-height: 18px !important;
  line-height: 1 !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-facts > span > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-fact-icon,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-day-icon {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  display: block !important;
  object-fit: contain !important;
}

/* Лайки/дизлайки — тот же визуальный масштаб, что строки игроков/даты. */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-reactions {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  min-width: 0;
  min-height: 18px !important;
  margin-top: 2px !important;
  overflow: hidden;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-reactions > span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0;
  color: rgba(240, 240, 240, .42) !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-reaction-icon {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  display: block !important;
  object-fit: contain !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-reactions b {
  color: rgba(240, 240, 240, .42) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

/* Дополнительный блок «Отметить как» остаётся вторичным по отношению к описанию. */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-status-label {
  display: block;
  flex: 0 0 auto;
  color: rgba(240, 240, 240, .55);
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  overflow: hidden;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button {
  width: auto;
  min-width: 0;
  max-width: 100%;
  flex: 0 1 auto;
  overflow: hidden;
  border: 0;
  color: rgba(240, 240, 240, .82);
  background: #343434;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button.active {
  color: #151515;
  background: #f0f0f0;
}

/* Нижняя строка действий повторяет геометрию «Открыть Steam / Опубликовать / ×». */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px;
  gap: 8px;
  min-width: 0;
  margin-top: auto;
  flex: 0 0 auto;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
  border-radius: 4px;
  font-family: 'DrukCyr-Heavy', 'Druk Cyr', sans-serif !important;
  font-weight: 900 !important;
  text-transform: uppercase;
  white-space: nowrap;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a {
  border: 1px solid #ef3d3f;
  color: #f0f0f0;
  background: transparent;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save {
  border: 1px solid #ef3d3f;
  color: #fff;
  background: #ef3d3f;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-delete {
  border: 1px solid #303030;
  color: #f0f0f0;
  background: #303030;
}

/* В JS опубликованной карточки используется символ ↗. Скрываем его и рисуем
   тот же круглый SVG-ассет, что у эталонной кнопки. */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save {
  position: relative;
  font-size: 0 !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
  min-width: 0;
  overflow: hidden;
  font-family: 'DrukCyr-Heavy', 'Druk Cyr', sans-serif;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before {
  content: 'ОТКРЫТЬ STEAM';
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
  content: 'СОХРАНИТЬ';
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::after,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: url('../../images/figma/arrow-circle-white.svg') center / contain no-repeat;
  pointer-events: none;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions .admin-catalog-delete {
  justify-content: center;
  margin-left: 0;
  padding: 0 !important;
  font-family: var(--font-ui) !important;
  font-weight: 400 !important;
}

/* ---------------- Широкий desktop: как «На рассмотрении». ---------------- */
@media (min-width: 1501px) {
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card {
    grid-template-columns: 327px minmax(0, 1fr);
    height: 289px;
    min-height: 289px;
    max-height: 289px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side {
    gap: 6px;
    padding: 24px 0 24px 26px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side > img {
    width: 327px;
    height: 121px;
    border-radius: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy {
    padding: 24px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy h3 {
    margin: 0 0 8px;
    font-family: 'DrukCyr-Heavy', 'Druk Cyr', sans-serif !important;
    font-size: 32px !important;
    line-height: 1 !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-description {
    display: -webkit-box;
    max-height: none;
    font-size: 20px !important;
    line-height: 1.2 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-status-label {
    margin: 10px 0 6px;
    font-size: 16px !important;
    line-height: 1.2;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses {
    gap: 8px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button {
    min-height: 34px;
    height: 34px;
    padding: 0 12px;
    font-size: 14px !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions {
    padding-top: 18px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    height: 50px;
    min-height: 50px !important;
    max-height: 50px;
    padding: 9px 44px 9px 14px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
    font-size: 16px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::after,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::after {
    right: 14px;
    width: 18px;
    height: 18px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions .admin-catalog-delete {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    font-size: 19px !important;
  }
}

/* ---------------- 901–1500: те же компактные размеры, что у эталона. ---------------- */
@media (min-width: 901px) and (max-width: 1500px) {
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card {
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 0;
    height: auto;
    min-height: 190px;
    max-height: none;
    padding: 0;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side {
    gap: 6px;
    padding: 14px 0 14px 14px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side > img {
    width: 194px;
    height: 72px;
    border-radius: 3px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy {
    padding: 14px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy h3 {
    margin: 0 0 5px;
    font-family: 'DrukCyr-Heavy', 'Druk Cyr', sans-serif !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-description {
    display: -webkit-box;
    font-size: 16px !important;
    line-height: 1.25 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-status-label {
    margin: 4px 0 3px;
    font-size: 12px !important;
    line-height: 1;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses {
    gap: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button {
    min-height: 26px;
    height: 26px;
    padding: 0 7px;
    font-size: 11px !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions {
    padding-top: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    height: 40px;
    min-height: 40px !important;
    max-height: 40px;
    padding: 7px 40px 7px 12px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
    font-size: 16px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::after,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::after {
    right: 12px;
    width: 18px;
    height: 18px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions .admin-catalog-delete {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    font-size: 19px !important;
  }
}

/* ---------------- 721–900: копируем раскладку эталонной moderation-card. ---------------- */
@media (min-width: 721px) and (max-width: 900px) {
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 0;
    height: auto;
    min-height: 292px;
    padding: 0;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side {
    gap: 6px;
    padding: 21px 0 21px 21px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side > img {
    width: 199px;
    height: 98px;
    border-radius: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy {
    padding: 21px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy h3 {
    margin: 0 0 10px;
    font-family: var(--font-display) !important;
    font-size: 32px !important;
    line-height: 1 !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-description {
    display: -webkit-box;
    font-size: 20px !important;
    line-height: 1.2 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-status-label {
    margin: 8px 0 5px;
    font-size: 14px !important;
    line-height: 1.2;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses {
    gap: 7px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button {
    min-height: 32px;
    height: 32px;
    padding: 0 8px;
    font-size: 12px !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions {
    padding-top: 12px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    height: 54px;
    min-height: 54px !important;
    max-height: 54px;
    padding: 10px 42px 10px 14px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    font-family: var(--font-display) !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
    font-family: var(--font-display);
    font-size: clamp(14px, 2.2vw, 20px);
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::after,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::after {
    right: 12px;
    width: 18px;
    height: 18px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions .admin-catalog-delete {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    font-size: 19px !important;
  }
}

/* ---------------- До 720px: как эталон — одна колонка. ---------------- */
@media (max-width: 720px) {
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    height: auto;
    min-height: 0;
    padding: 0;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side {
    gap: 6px;
    padding: 14px 14px 0;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-side > img {
    width: 100%;
    height: 150px;
    border-radius: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy {
    padding: 14px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-card-copy h3 {
    margin: 0 0 6px;
    font-family: var(--font-display) !important;
    font-size: 22px !important;
    line-height: 1.05 !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-description {
    display: -webkit-box;
    font-size: 20px !important;
    line-height: 1.35 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-status-label {
    margin: 10px 0 5px;
    font-size: 13px !important;
    line-height: 1.2;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses {
    gap: 6px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-statuses button {
    min-height: 32px;
    height: 32px;
    padding: 0 5px;
    font-size: clamp(9px, 2.5vw, 12px) !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px;
    gap: 7px;
    padding-top: 12px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    height: 40px;
    min-height: 40px !important;
    max-height: 40px;
    padding: 7px 34px 7px 8px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions a,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions button {
    font-family: var(--font-display) !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
    font-family: var(--font-display);
    font-size: clamp(10px, 3vw, 14px);
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::after,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::after {
    right: 8px;
    width: 16px;
    height: 16px;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions .admin-catalog-delete {
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    font-size: 18px !important;
  }
}

/* The game filters belong to the workspace grid, not to the viewport.
   This keeps them aligned with the adjacent panels and moving on scroll. */
@media (min-width: 1101px) {
  .admin-portal #adminSection[data-admin-view="games"] > .proposal-filter-box:not(.admin-media-filter-box)[open] {
    position: absolute !important;
    top: 16rem !important;
    right: 0 !important;
    left: auto !important;
    width: 415rem !important;
    max-height: none;
    overflow: hidden;
    margin: 0 !important;
  }

  /* Only the card list scrolls. Navigation, tabs, tools and filters remain
     fixed inside the height-constrained management workspace. */
  body.admin-portal-open {
    overflow: hidden !important;
  }

  .admin-portal .admin-portal-dialog,
  .admin-portal .admin-portal-body,
  .admin-portal #adminSection[data-admin-view="games"] {
    min-height: 0;
    overflow: hidden !important;
  }

  .admin-portal[data-portal-mode="proposal"] .admin-portal-body {
    box-sizing: border-box;
    height: 100% !important;
    max-height: 100% !important;
  }

  .admin-portal #adminSection[data-admin-view="games"] {
    height: 100% !important;
    max-height: 100% !important;
  }

  .admin-portal #adminSection[data-admin-view="games"] .suggestion-moderation {
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) !important;
    align-content: stretch;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .admin-portal #adminSection[data-admin-view="games"] :is(
    .proposal-admin-nav,
    .suggestion-moderation-filters,
    .proposal-game-tools
  ) {
    position: static !important;
    inset: auto !important;
  }

  .admin-portal #adminSection[data-admin-view="games"] :is(
    .proposal-admin-nav,
    .suggestion-moderation-filters,
    .proposal-game-tools,
    .proposal-filter-box
  ) {
    overflow: hidden;
  }

  .admin-portal #adminSection[data-admin-view="games"] .suggestion-moderation-list,
  .admin-portal #adminSection[data-admin-view="games"] .suggestion-moderation-list.is-catalog-list {
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .admin-portal .catalog-sort {
    position: fixed !important;
    top: 110rem !important;
    right: max(20rem, calc((100vw - 1720rem) / 2)) !important;
    left: auto !important;
    width: 415rem !important;
    margin: 0 !important;
  }
}

@media (max-width: 1500px) and (min-width: 1101px) {
  .admin-portal #adminSection[data-admin-view="games"] > .proposal-filter-box:not(.admin-media-filter-box)[open],
  .admin-portal .catalog-sort {
    width: 330rem !important;
  }
}

/* One translucent surface is enough: stacked dark layers made the header black. */
.admin-portal {
  background: transparent !important;
  backdrop-filter: none;
}

.admin-portal > .admin-portal-dialog {
  position: relative;
  z-index: 1;
}

/* Unified management workspace canvas: the dialog is the only tinted layer. */
body.standalone-admin {
  background: var(--page-bg, #0b0b0b) !important;
}

body:is(.admin-portal-open, .standalone-admin) .site-header,
html body #adminPortal.admin-portal {
  background: transparent !important;
  backdrop-filter: none;
}

html body #adminPortal > .admin-portal-dialog {
  background: rgba(11, 11, 11, .72) !important;
  backdrop-filter: blur(10rem);
}

body:is(.admin-portal-open, .standalone-admin) .site-header {
  background-image: none !important;
}

@media (min-width: 1101px) {
  body.standalone-admin #adminPortal.admin-portal {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
  }

  body.standalone-admin #adminPortal .admin-portal-body {
    padding-top: 118rem !important;
  }
}

/* Published game actions: match the typography/vertical alignment of
   the moderation ("На рассмотрении") action buttons. */
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save {
  align-items: center !important;
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
  display: inline-flex !important;
  align-items: center !important;
  align-self: stretch;
  min-width: 0;
  max-width: calc(100% - 30px);
  overflow: visible !important;
  font-family: 'DrukCyr-Heavy', 'Druk Cyr', sans-serif !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-overflow: clip !important;
  white-space: nowrap;
  transform: translateY(1px);
}

.admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before {
  content: 'ОТКРЫТЬ В STEAM';
}

/* Keep enough horizontal room for the label while preserving the same
   white arrow asset and the same right inset as the reference buttons. */
@media (min-width: 901px) {
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > a::before,
  .admin-portal[data-portal-mode="proposal"] .admin-catalog-actions > .admin-catalog-save::before {
    font-size: 16px !important;
  }
}
