/* Moderace — smazané a skryté zprávy (extension/core/moderation.js).
   Styl navazuje na dřívější .cleared/.cleared-note (zrušené ve v3.45.0);
   nové .uc-deleted* třídy jsou nezávislé, aby je mohl používat i web/OBS. */

.uc-deleted--dim .tx {
  opacity: .5;
}

.uc-deleted--strike .tx {
  text-decoration: line-through;
  opacity: .6;
}

/* Přeškrtnutí přes emoty — text-decoration obrázky nepřeškrtne. Samostatný emote core obalí
   do .uc-strike-emote (applyDeleted), vrstvený .emote-stack obal má; čáru kreslí ::after. */
.uc-strike-emote {
  display: inline-block;
  position: relative;
  vertical-align: middle;
}
.uc-deleted--strike .tx .emote-stack { position: relative; }
.uc-deleted--strike .tx .uc-strike-emote::after,
.uc-deleted--strike .tx .emote-stack::after {
  content: '';
  position: absolute;
  left: -1px;
  right: -1px;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  background: currentColor;
  pointer-events: none;
}

/* Moderátor: smazaná/skrytá zpráva je vždy ztlumená (i „Zpráva smazána"), štítek zůstává plně vidět. */
.uc-deleted--dimmed .tx,
.uc-deleted--dimmed .un {
  opacity: .5;
}

.uc-deleted-label {
  font-style: italic;
  color: var(--text-secondary);
}

.uc-deleted-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  background: rgba(229, 72, 77, 0.15);
  border: 1px solid rgba(229, 72, 77, 0.4);
  color: #ff9a9d;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  border-radius: 3px;
  vertical-align: middle;
}

/* Skrytý styl / skrytá zpráva pro diváka — `hidden` atribut by přebilo `.msg { display }`. */
.uc-deleted--hide {
  display: none !important;
}
/* Plynulá změna výšky (core/height-anim.js): po dobu animace zobrazená i schovaná zpráva (hidden / uc-deleted--hide /
   uc-gif-held), obsah se ořezává; po animaci třída pryč a platí skrytí. Specifičtější než skrývací pravidla. */
.msg.uc-h-anim, .msg.uc-h-anim[hidden], .msg.uc-h-anim.uc-deleted--hide, .msg.uc-h-anim.uc-gif-held { display: block !important; }
.uc-h-anim { overflow: hidden !important; }

/* Tlačítko „Smazat zprávu" (koš) jen pro mody (body.uc-can-moderate z GET /moderation/me). */
.msg-action-btn[data-act="delete"] { display: none; }
body.uc-can-moderate .msg-action-btn[data-act="delete"] { display: flex; }
/* Vlastní zpráva: koš i divákovi, když kanál povolil mazání vlastních zpráv (Židolišta chat.selfDelete, 2026-10-08). */
body.uc-self-delete .msg.uc-own:not(.uc-deleted) .msg-action-btn[data-act="delete"] { display: flex; }
body.uc-self-delete .msg.uc-own .msg-action-btn[data-act="delete"]:hover { color: #ff9a9d; }
body.uc-can-moderate .msg-action-btn[data-act="delete"]:hover { color: #ff9a9d; }
/* Natažený koš (první klik): červený, mírně zvětšený — druhý klik do 3 s smaže (core confirmDeleteClick). */
.msg-action-btn[data-act="delete"].uc-del-armed, body.uc-can-moderate .msg-action-btn[data-act="delete"].uc-del-armed:hover { color: #fff; background: #d0342c; animation: uc-del-arm 0.6s ease-in-out infinite alternate; }
@keyframes uc-del-arm { from { box-shadow: 0 0 0 0 rgba(208, 52, 44, 0.55); } to { box-shadow: 0 0 0 4px rgba(208, 52, 44, 0); } }
@media (prefers-reduced-motion: reduce) { .msg-action-btn[data-act="delete"].uc-del-armed { animation: none; } }
/* Zpráva smazaná / skrytá serverem: místo koše oko „Odkrýt zprávu (jen v UnityChatu)“ — přepíná se jen třídou
   .uc-deleted--restorable (applyDeleted / clearDeleted), takže po odkrytí (i přes SSE od jiného moda) se vrátí
   koš. Zprávy ztlumené jen po timeoutu / banu tu třídu nemají (server je smazané nemá) → koš zůstává. */
.msg-action-btn[data-act="restore"] { display: none; }
/* Řádek nastavení „Smazané zprávy" jen pro moda (`.setting-row { display: flex }` by přebilo atribut hidden). */
#row-deleted-style[hidden] { display: none; }
/* Smazaná / skrytá zpráva: koš = „Odstranit i pro mody“ (POST /moderation/purge, pokyn usera 2026-10-09), i vedle oka. */
body.uc-can-moderate .msg.uc-deleted .msg-action-btn[data-act="delete"] { display: flex; }
/* Smazaná / skrytá karta funkce: karta pryč (jen štítek), po „Zobrazit“ se vrátí (pokyn usera 2026-10-09). */
.msg.uc-feature-msg.uc-deleted .uc-ft { display: none; }
body.uc-can-moderate .msg.uc-deleted--restorable .msg-action-btn[data-act="restore"] { display: flex; }
body.uc-can-moderate .msg-action-btn[data-act="restore"]:hover { color: #7fd0ff; }

/* Systémový řádek s akcí (např. „Povolit moderaci účtem"). */
.sys .sys-action {
  margin-left: 4px;
  padding: 1px 8px;
  font: inherit;
  font-size: 11px;
  color: #ffb347;
  background: rgba(255, 140, 0, 0.12);
  border: 1px solid rgba(255, 140, 0, 0.45);
  border-radius: 4px;
  cursor: pointer;
}
.sys .sys-action:hover { background: rgba(255, 140, 0, 0.25); }

/* „Zpráva smazána" — text je pryč, takže ani kopírovat/odpovídat s citací (pojistka i v JS: _textSuppressed). */
.msg.uc-deleted--label .msg-action-btn[data-act="copy"],
.msg.uc-deleted--label .msg-action-btn[data-act="reply"] { display: none; }

/* ---- Část 2: štítek moderace uživatele (timeout / ban) — core/moderation.js applyModTag ---- */
.uc-mod-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  background: rgba(229, 72, 77, 0.15);
  border: 1px solid rgba(229, 72, 77, 0.4);
  color: #ff9a9d;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  border-radius: 3px;
  vertical-align: middle;
  white-space: nowrap;
}
/* Se štítkem timeoutu/banu se obecné „Smazáno" neukazuje (jinak dva štítky). */
.uc-mod-tagged .uc-deleted-tag { display: none; }

/* ---- Kontextová nabídka moda na jméno (core/mod-menu.js) ---- */
.uc-mod-menu {
  position: fixed;
  z-index: 10000;
  min-width: 190px;
  max-width: calc(100vw - 16px);
  padding: 4px;
  background: var(--bg-secondary, #18181b);
  border: 1px solid var(--border, #2f2f35);
  border-radius: 8px;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.55);
  font-size: 13px;
  color: var(--text-primary, #efeff1);
  outline: none;
}
.uc-mm-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 8px;
  padding: 6px 8px 7px;
  margin-bottom: 3px;
  border-bottom: 1px solid var(--border, #2f2f35);
}
.uc-mm-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.uc-mm-plat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-secondary, #adadb8);
}
.uc-mm-plat--twitch { color: #bf94ff; }
.uc-mm-plat--kick { color: #53fc18; }
.uc-mm-plat--youtube { color: #ff5c5c; }
.uc-mm-login { flex-basis: 100%; font-size: 11px; color: var(--text-secondary, #adadb8); }
.uc-mm-list { display: flex; flex-direction: column; }
.uc-mm-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 6px 8px;
  font: inherit;
  text-align: left;
  color: inherit;
  background: none;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
}
.uc-mm-item:hover:not([disabled]), .uc-mm-item:focus-visible, .uc-mm-item:focus { background: var(--bg-hover, #26262c); outline: none; }
.uc-mm-item[disabled] { opacity: 0.4; cursor: default; }
.uc-mm-item--danger { color: #ff9a9d; }
.uc-mm-back { color: var(--text-secondary, #adadb8); font-size: 12px; border-bottom: 1px solid var(--border, #2f2f35); border-radius: 5px 5px 0 0; margin-bottom: 2px; }
.uc-mm-arrow { color: var(--text-secondary, #adadb8); }
/* Ikona akce vlevo od názvu (nabídka moda). */
.uc-mm-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 16px; margin-right: -4px; opacity: 0.85; }
.uc-mm-icon svg { display: block; }
.uc-mm-label { flex: 1; min-width: 0; }
.uc-mm-item:hover .uc-mm-icon, .uc-mm-item:focus-visible .uc-mm-icon { opacity: 1; }

/* ---- Dialogy moderace (přejmenování, varování, potvrzení banu) + okno varování účtu ---- */
.uc-mod-shade {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0, 0, 0, 0.62);
}
.uc-mod-dialog {
  width: min(360px, 100%);
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 16px;
  background: var(--bg-secondary, #18181b);
  border: 1px solid var(--border, #2f2f35);
  border-radius: 10px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.6);
  color: var(--text-primary, #efeff1);
  font-size: 13px;
}
.uc-mod-dialog h2 { margin: 0 0 6px; font-size: 15px; overflow-wrap: anywhere; }
.uc-mod-dialog-sub { margin: 0 0 12px; color: var(--text-secondary, #adadb8); font-size: 12px; line-height: 1.4; }
.uc-mod-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.uc-mod-field-label { font-size: 12px; color: var(--text-secondary, #adadb8); }
.uc-mod-field input[type="text"], .uc-mod-field textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 6px 8px;
  font: inherit;
  color: inherit;
  background: var(--bg-primary, #0e0e10);
  border: 1px solid var(--border, #2f2f35);
  border-radius: 6px;
  resize: vertical;
}
.uc-mod-field input:focus, .uc-mod-field textarea:focus { outline: none; border-color: var(--accent, #ff8c00); }
.uc-mod-field--color { flex-direction: row; align-items: center; gap: 8px; }
.uc-mod-field--color input[type="color"] { width: 36px; height: 24px; padding: 0; border: 1px solid var(--border, #2f2f35); border-radius: 4px; background: none; }
.uc-mod-field--color input[type="color"]:disabled { opacity: 0.4; }
.uc-mod-dialog-err { margin: 0 0 10px; color: #ff9a9d; font-size: 12px; }
.uc-mod-dialog-btns { display: flex; justify-content: flex-end; gap: 8px; }
.uc-mod-btn {
  padding: 6px 14px;
  font: inherit;
  font-weight: 600;
  color: inherit;
  background: var(--bg-tertiary, #1f1f23);
  border: 1px solid var(--border, #2f2f35);
  border-radius: 6px;
  cursor: pointer;
}
.uc-mod-btn:hover { background: var(--bg-hover, #26262c); }
.uc-mod-btn--primary { color: #111; background: var(--accent-gradient, linear-gradient(160deg, #ffc800, #ff8c00)); border-color: transparent; }
.uc-mod-btn--primary:hover { filter: brightness(1.08); background: var(--accent-gradient, linear-gradient(160deg, #ffc800, #ff8c00)); }
.uc-mod-btn--danger { color: #fff; background: #c4373c; }
.uc-mod-btn--danger:hover { background: #d8454a; }
.uc-mod-btn:disabled { opacity: 0.6; cursor: default; }
.uc-warn-dialog { border-color: rgba(229, 72, 77, 0.6); }
.uc-warn-reason {
  margin: 0 0 12px;
  padding: 10px 12px;
  background: rgba(229, 72, 77, 0.1);
  border-left: 3px solid #e5484d;
  border-radius: 4px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
.uc-warn-note, .uc-warn-more { margin: 0 0 12px; font-size: 12px; color: var(--text-secondary, #adadb8); }

/* Pole pro psaní zablokované nepotvrzeným varováním. */
body.uc-warning-pending .msg-input-wrap { cursor: pointer; }

/* Podnabídka vedle hlavní nabídky (počítač s myší, když se vejde) — core/mod-menu.js _openFlyout. */
.uc-mm-fly {
  position: absolute; min-width: 120px; padding: 4px;
  background: var(--bg-secondary, #18181b); border: 1px solid var(--border, #2f2f35); border-radius: 8px;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.55); display: flex; flex-direction: column;
}
.uc-mm-item--open { background: var(--bg-hover, #26262c); }

/* Vlastní délka timeoutu / permitu: číslo + s / m / h (pokyn usera 2026-09-25) */
.uc-mm-custom {
  display: flex; align-items: center; gap: 4px; padding: 6px 4px 2px;
  margin-top: 2px; border-top: 1px solid var(--border, #2f2f35);
}
.uc-mm-custom-num {
  width: 52px; min-width: 0; padding: 4px 6px; font: inherit; font-size: 12px;
  color: var(--text, #efeff1); background: var(--bg-primary, #0e0e10);
  border: 1px solid var(--border, #2f2f35); border-radius: 6px; -moz-appearance: textfield;
}
.uc-mm-custom-num::-webkit-inner-spin-button, .uc-mm-custom-num::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.uc-mm-custom-num:focus { outline: none; border-color: #ff8c00; }
.uc-mm-unit {
  flex: 1 1 0; min-width: 26px; padding: 4px 0; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
  color: var(--text, #efeff1); background: var(--bg-hover, #26262c); border: 1px solid var(--border, #2f2f35); border-radius: 6px;
}
.uc-mm-unit:hover, .uc-mm-unit:focus-visible { border-color: #ff8c00; background: rgba(255, 140, 0, 0.18); outline: none; }
.uc-mm-custom--bad .uc-mm-custom-num { border-color: #e5484d; animation: uc-mm-shake 0.3s; }
@keyframes uc-mm-shake { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }

/* ---- Profil uživatele (core/user-history.js, dřív „Chat historie“) — panel přes chat ---- */
.uc-uh {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  z-index: 9000;
  width: min(520px, 100%);
  display: flex;
  flex-direction: column;
  background: var(--bg-primary, #0e0e10);
  border-left: 1px solid var(--border, #2f2f35);
  box-shadow: -12px 0 32px rgba(0, 0, 0, 0.5);
  color: var(--text-primary, #efeff1);
  font-size: 13px;
  outline: none;
  animation: uc-uh-in 0.16s ease-out;
}
.uc-uh--fixed { position: fixed; }
@keyframes uc-uh-in { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .uc-uh { animation: none; } }
.uc-uh-head {
  flex: none;
  padding: 10px 12px 8px;
  background: var(--bg-secondary, #18181b);
  border-bottom: 1px solid var(--border, #2f2f35);
}
.uc-uh-top { display: flex; align-items: flex-start; gap: 8px; }
.uc-uh-titles { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.uc-uh-cap { font-size: 10px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: var(--accent, #ff8c00); }
.uc-uh-namerow { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; min-width: 0; }
.uc-uh-name { margin: 1px 0 0; min-width: 0; max-width: 100%; font-size: 16px; font-weight: 700; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Badge z poslední zprávy (render chatu: .bdg / .bdg-img), víc platforem = skupina s logem. */
.uc-uh-badges { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.uc-uh-badges:empty { display: none; }
.uc-uh-badge-group { display: inline-flex; align-items: center; gap: 3px; }
.uc-uh-badges .bdg { display: inline-flex; align-items: center; gap: 3px; margin: 0; }
.uc-uh-badges .bdg-img { width: 18px; height: 18px; display: block; }
/* Suma darů: velkým písmem (velikost nadpisu), odhad podle jména menší pod tím. */
/* Suma darů vpravo nahoře — gradient jako částka v QR donu (qr-dono.css .uc-qd-amount). */
.uc-uh-donsum { flex: none; align-self: center; cursor: default; }
.uc-uh-donsum-main {
  font-size: 22px; line-height: 1.15; font-weight: 800; letter-spacing: 0.3px; white-space: nowrap;
  background: linear-gradient(160deg, #ffe08a 0%, #ffc800 40%, #ff8c00 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 6px rgba(255, 170, 30, 0.5)) drop-shadow(0 0 14px rgba(255, 120, 0, 0.3));
}
/* Divák: Profil je jen hlavička — pod ní zůstane vidět chat (bez prázdné plochy logu). */
.uc-uh.uc-uh--public { bottom: auto; max-height: 100%; border-bottom: 1px solid var(--border, #2f2f35); border-bottom-left-radius: 8px; }
.uc-uh-links { margin-top: 6px; }
.uc-uh-card {
  padding: 3px 10px; font: inherit; font-size: 11px; font-weight: 600; cursor: pointer;
  color: var(--text-primary, #efeff1); background: var(--bg-tertiary, #1f1f23);
  border: 1px solid var(--border, #2f2f35); border-radius: 6px;
}
.uc-uh-card:hover, .uc-uh-card:focus-visible { border-color: var(--accent, #ff8c00); outline: none; }
.uc-uh-sub { font-size: 11px; color: var(--text-secondary, #adadb8); }
.uc-uh-sub:empty { display: none; }
.uc-uh-close {
  flex: none;
  width: 28px; height: 28px;
  font: inherit; font-size: 20px; line-height: 1;
  color: var(--text-secondary, #adadb8);
  background: none; border: 0; border-radius: 6px; cursor: pointer;
}
.uc-uh-close:hover, .uc-uh-close:focus-visible { color: var(--text-primary, #efeff1); background: var(--bg-hover, #26262c); outline: none; }
/* ‹ zpět na předchozí profil (po přepnutí z citace) — vyjede zleva. */
.uc-uh-back {
  flex: none; align-self: center;
  width: 28px; height: 28px; margin-left: -6px;
  font: inherit; font-size: 24px; line-height: 1; padding-bottom: 3px;
  color: var(--accent, #ff8c00);
  background: none; border: 1px solid transparent; border-radius: 6px; cursor: pointer;
  animation: uc-uh-back-in 0.18s ease-out;
}
.uc-uh-back:hover, .uc-uh-back:focus-visible { background: rgba(255, 140, 0, 0.14); border-color: rgba(255, 140, 0, 0.45); outline: none; }
@keyframes uc-uh-back-in { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .uc-uh-back { animation: none; } }
.uc-uh-ids { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 6px; }
.uc-uh-ids:empty { display: none; }
.uc-uh-id {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 1px 7px 1px 4px;
  font-size: 11px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 999px;
}
.uc-uh-stats { margin-top: 6px; font-size: 11px; color: var(--text-secondary, #adadb8); }
.uc-uh-mod { margin-top: 6px; }
.uc-uh-mod summary { cursor: pointer; font-size: 11px; font-weight: 600; color: #ff9a9d; }
.uc-uh-mod ul { list-style: none; margin: 4px 0 0; padding: 0; max-height: 132px; overflow: auto; }
.uc-uh-mod-item { display: flex; flex-wrap: wrap; gap: 0 6px; padding: 3px 0 3px 8px; border-left: 2px solid rgba(229, 72, 77, 0.5); margin-bottom: 3px; font-size: 12px; }
.uc-uh-mod-item--unban, .uc-uh-mod-item--permit, .uc-uh-mod-item--rename { border-left-color: var(--border, #2f2f35); }
.uc-uh-mod-what { font-weight: 600; }
.uc-uh-mod-why { color: var(--text-primary, #efeff1); overflow-wrap: anywhere; }
.uc-uh-mod-why::before { content: '— '; color: var(--text-secondary, #adadb8); }
.uc-uh-mod-meta { flex-basis: 100%; font-size: 10px; color: var(--text-secondary, #adadb8); }
.uc-uh-tabs {
  flex: none;
  display: flex; gap: 4px;
  padding: 6px 8px;
  overflow-x: auto;
  border-bottom: 1px solid var(--border, #2f2f35);
}
.uc-uh-tab {
  flex: none;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  font: inherit; font-size: 12px; font-weight: 600;
  color: var(--text-secondary, #adadb8);
  background: var(--bg-tertiary, #1f1f23);
  border: 1px solid var(--border, #2f2f35);
  border-radius: 999px;
  cursor: pointer;
}
.uc-uh-tab:hover { color: var(--text-primary, #efeff1); }
.uc-uh-tab--on { color: #111; background: var(--accent-gradient, linear-gradient(160deg, #ffc800, #ff8c00)); border-color: transparent; }
.uc-uh-tab-count { font-size: 10px; padding: 0 5px; border-radius: 999px; background: rgba(255, 255, 255, 0.1); }
.uc-uh-tab--on .uc-uh-tab-count { background: rgba(0, 0, 0, 0.18); }
.uc-uh-list { flex: 1; min-height: 0; overflow-y: auto; padding: 6px 0; }
.uc-uh-msg, .uc-uh-don { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; padding: 3px 12px; line-height: 1.45; }
.uc-uh-msg:hover, .uc-uh-don:hover { background: var(--bg-hover, rgba(255, 255, 255, 0.04)); }
/* Oddělovač dnů. */
.uc-uh-day {
  display: flex; align-items: center; gap: 8px;
  margin: 8px 12px 2px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase;
  color: var(--text-secondary, #adadb8);
}
.uc-uh-day::before, .uc-uh-day::after { content: ''; flex: 1; height: 1px; background: var(--border, #2f2f35); }
/* Citace odpovědi (render chatu .reply-ctx): jeden řádek, klik = celý text. */
.uc-uh-reply { flex: 0 0 100%; order: -1; min-width: 0; cursor: pointer; }
.uc-uh-reply, .uc-uh-reply > *, .uc-uh-reply .reply-ctx { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uc-uh-reply .reply-ctx { padding-left: 0; }
.uc-uh-reply--wrap, .uc-uh-reply--wrap > *, .uc-uh-reply--wrap .reply-ctx { white-space: normal; overflow: visible; }
.uc-uh-reply .rctx-user { cursor: pointer; }
.uc-uh-reply .rctx-user:hover { text-decoration: underline; }
/* Ikony akcí moda u zprávy (jako hover akce v chatu). */
.uc-uh-acts {
  position: absolute; top: 1px; right: 8px;
  display: none; gap: 2px; padding: 2px;
  background: var(--bg-secondary, #18181b); border: 1px solid var(--border, #2f2f35); border-radius: 6px;
}
.uc-uh-msg:hover .uc-uh-acts, .uc-uh-acts:focus-within { display: inline-flex; }
.uc-uh-act {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0;
  color: var(--text-secondary, #adadb8); background: none; border: 0; border-radius: 4px; cursor: pointer;
}
.uc-uh-act:hover, .uc-uh-act:focus-visible { color: var(--text-primary, #efeff1); background: var(--bg-hover, #26262c); outline: none; }
.uc-uh-act--delete:hover, .uc-uh-act--ban:hover { color: #ff9a9d; }
@media (hover: none) { .uc-uh-acts { display: inline-flex; position: static; margin-left: auto; } }
/* Řádek QR dona (ve stylu announcementu, zařazený mezi zprávy podle času). */
.uc-uh-don { margin: 2px 8px; padding: 4px 8px; border-radius: 6px; background: linear-gradient(90deg, rgba(255, 200, 0, 0.12), rgba(255, 140, 0, 0.04)); border-left: 2px solid #ffc800; }
.uc-uh-don-icon { flex: none; }
.uc-uh-don-body { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; overflow-wrap: anywhere; }
.uc-uh-don-line { font-weight: 700; color: #ffd27a; }
.uc-uh-don-guess { font-size: 10px; color: var(--text-secondary, #adadb8); font-style: italic; }
.uc-uh-don-msg { flex-basis: 100%; color: var(--text-primary, #efeff1); }
.uc-uh-don--guess { border-left-color: var(--border, #2f2f35); background: rgba(255, 255, 255, 0.03); }
/* Moderace uživatele chronologicky mezi zprávami (varování, timeout, ban, smazání…; 2026-10-06). Tresty červeně,
   zrušení / permit / přezdívka neutrálně. Text jen přes textContent (core/user-history.js modEventText). */
.uc-uh-ev {
  position: relative; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px;
  margin: 2px 8px; padding: 3px 8px; line-height: 1.45; font-size: 12px;
  border-radius: 6px; border-left: 2px solid rgba(229, 72, 77, 0.7);
  background: linear-gradient(90deg, rgba(229, 72, 77, 0.12), rgba(229, 72, 77, 0.03));
}
.uc-uh-ev--warn { border-left-color: #ffb020; background: linear-gradient(90deg, rgba(255, 176, 32, 0.12), rgba(255, 176, 32, 0.03)); }
.uc-uh-ev--delete, .uc-uh-ev--hide { border-left-color: rgba(173, 173, 184, 0.6); background: rgba(255, 255, 255, 0.035); }
.uc-uh-ev--unban, .uc-uh-ev--permit, .uc-uh-ev--rename { border-left-color: var(--border, #2f2f35); background: rgba(255, 255, 255, 0.03); }
.uc-uh-ev-icon { flex: none; }
.uc-uh-ev-text { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 600; color: #ffb3b5; }
.uc-uh-ev--warn .uc-uh-ev-text { color: #ffd27a; }
.uc-uh-ev--delete .uc-uh-ev-text, .uc-uh-ev--hide .uc-uh-ev-text,
.uc-uh-ev--unban .uc-uh-ev-text, .uc-uh-ev--permit .uc-uh-ev-text, .uc-uh-ev--rename .uc-uh-ev-text { color: var(--text-secondary, #adadb8); font-weight: 500; }
.uc-uh-time { flex: none; font-size: 10px; color: var(--text-secondary, #adadb8); font-variant-numeric: tabular-nums; white-space: nowrap; }
.uc-uh-tx { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.uc-uh-tx .emote { vertical-align: middle; max-height: 28px; }
/* Staré smajlíky Twitche (:), :D…) mají malé nativní rozlišení — jako v chatu (.emote-tiny v sidepanel.css), ne 28 px. */
.uc-uh-tx img.emote.emote-tiny { height: 1.25em; max-height: none; min-width: auto; }
/* Gigantický emote: čas a logo svisle na střed obrázku (účaří blokového obrázku je jeho spodek). */
.uc-uh-msg.uc-uh-msg--giant { align-items: center; }
/* Záloha přes UnityChat: malé zatmavené logo původní platformy vedle loga UnityChatu. */
.uc-uh-pi.uc-uh-pi-origin { margin-left: -4px; }
.uc-uh-pi.uc-uh-pi-origin img { width: 11px; height: 11px; filter: brightness(0.45); }
/* Výročí z Twitch USERNOTICE v Profilu (core/anniversary.js annivProfileLabel) — událost, ne zpráva. */
.uc-uh-anniv { display: inline-block; font-weight: 700; color: #b78cff; margin-right: 2px; }
.uc-uh-msg--event .uc-uh-anniv::before { content: "★ "; }
/* GIF ve zprávě Profilu; médium mimo knihovnu rozmazaně, klik zaostří (spec 2026-09-27-gif-review-upravy §3). */
.uc-uh-gif { position: relative; flex: 1 1 100%; display: flex; margin: 2px 0 2px; }
.uc-uh-gif .uc-gif { margin: 0; }
.uc-uh-gif--hidden { align-self: flex-start; flex: 0 0 auto; cursor: pointer; border-radius: 6px; outline: none; }
.uc-uh-gif--hidden:focus-visible { box-shadow: 0 0 0 2px #ff8c00; }
.uc-uh-gif--hidden .uc-gif { overflow: hidden; border-radius: 6px; }
.uc-uh-gif--hidden .uc-gif-media { transition: filter .2s; }
.uc-uh-gif--blur .uc-gif-media { filter: blur(10px) saturate(.7); }
.uc-uh-gif-tag {
  position: absolute; left: 6px; top: 6px; z-index: 1; padding: 1px 6px; border-radius: 4px; pointer-events: none;
  background: rgba(0, 0, 0, 0.7); color: #ffc46b; font-size: 11px; font-weight: 700; font-style: normal;
}
.uc-uh-gif--hidden:not(.uc-uh-gif--blur) .uc-uh-gif-tag { opacity: .85; }
.uc-uh-msg--gone .uc-uh-tx { font-style: italic; color: var(--text-secondary, #adadb8); }
.uc-uh-pi { flex: none; display: inline-flex; align-self: center; }
.uc-uh-pi img { width: 14px; height: 14px; display: block; }
.uc-uh-pi--text { font-size: 9px; font-weight: 700; text-transform: uppercase; padding: 0 4px; border-radius: 3px; background: rgba(255, 255, 255, 0.08); }
.uc-uh-pi--text.uc-uh-pi--twitch { color: #bf94ff; }
.uc-uh-pi--text.uc-uh-pi--kick { color: #53fc18; }
.uc-uh-pi--text.uc-uh-pi--youtube { color: #ff5c5c; }
.uc-uh-status, .uc-uh-edge { padding: 16px 12px; text-align: center; font-size: 12px; color: var(--text-secondary, #adadb8); }
.uc-uh-edge { padding: 6px 12px 10px; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; }
.uc-uh-status[data-kind="error"] { color: #ff9a9d; }
.uc-uh-older-fail { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 10px; padding: 8px 12px; font-size: 12px; color: #ff9a9d; }
.uc-uh-retry {
  padding: 3px 10px; font: inherit; font-size: 11px; font-weight: 600; cursor: pointer;
  color: var(--text-primary, #efeff1); background: var(--bg-tertiary, #1f1f23);
  border: 1px solid var(--border, #2f2f35); border-radius: 6px;
}
.uc-uh-retry:hover, .uc-uh-retry:focus-visible { border-color: var(--accent, #ff8c00); outline: none; }
@media (max-width: 420px) {
  .uc-uh { width: 100%; border-left: 0; }
  .uc-uh-msg { flex-wrap: wrap; row-gap: 0; }
}

/* Profil: zpráva odstraněná i pro mody — jen ke čtení (štítek „Odstraněno“), koš ani oko už nic neudělají. */
.uc-purged .msg-action-btn[data-act="delete"], .uc-purged .msg-action-btn[data-act="restore"] { display: none !important; }
