/* Panel ZL „Cíle a odměny“ (core/zl-panel.js) — 1:1 s artifactem KjNnAi5sH6xXYM8i8Hrj4J (spec 2026-10-14-zl-panel-design).
   Barvy: --zl-c1 / c2 / glow / pink / cyan nastavuje core (téma lišty ZL nebo brand UnityChatu). Jen tmavé téma. */
.uc-zl, .uc-zl-btn { --zl-c1: #8b3fd9; --zl-c2: #c76bff; --zl-glow: #b46eff; --zl-pink: #ff2d95; --zl-cyan: #00f0ff; }
.uc-zl {
  --zl-surface: #18181b; --zl-muted: #adadb8; --zl-dim: #848494; --zl-text: #efeff1;
  --zl-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  position: absolute; bottom: 100%; right: 10px; z-index: 32; margin-bottom: 6px;
  width: min(440px, calc(100% - 20px)); max-height: var(--uc-room, 75vh);
  display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; outline: none;
  color: var(--zl-text); font-size: 14px; line-height: 1.5;
  background: radial-gradient(120% 70% at 0% 0%, color-mix(in srgb, var(--zl-c1) 22%, transparent), transparent 60%), radial-gradient(90% 60% at 100% 100%, color-mix(in srgb, var(--zl-pink) 10%, transparent), transparent 60%), #141418;
  border: 1px solid color-mix(in srgb, var(--zl-c2) 40%, transparent);
  box-shadow: 0 24px 60px rgba(0,0,0,.65), 0 0 40px color-mix(in srgb, var(--zl-glow) 18%, transparent);
}
.uc-zl.hidden { display: none; }
@media (max-width: 480px) { .uc-zl { left: 8px; right: 8px; width: auto; } }
.uc-zl *, .uc-zl *::before, .uc-zl *::after { box-sizing: border-box; }

/* ---- ikona v řádku nad polem (vlevo od štítu admin panelu) ---- */
.uc-zl-btn:not([hidden]) ~ .uc-adm-btn { margin-left: 6px; }
.uc-zl-btn { position: relative; overflow: visible; }
.uc-zl-btn.uc-zl-lvlup { animation: ucZlIcoPulse 1.1s ease-in-out infinite; }
.uc-zl-btn.uc-zl-lvlup::after { content: 'LVL'; position: absolute; top: -7px; right: -9px; padding: 1px 4px; border-radius: 5px; font: 800 9px/1.3 system-ui, sans-serif; letter-spacing: .06em; color: #111; background: linear-gradient(90deg, var(--zl-c2), var(--zl-pink)); box-shadow: 0 0 10px var(--zl-glow); pointer-events: none; }
@keyframes ucZlIcoPulse { 0%,100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--zl-glow) 70%, transparent); } 50% { box-shadow: 0 0 0 7px transparent, 0 0 18px var(--zl-glow); } }

/* ---- hlavička ---- */
.uc-zl-head { position: relative; display: flex; align-items: center; gap: 12px; padding: 4px 14px 2px; border-bottom: 1px solid rgba(255,255,255,.06); flex: none; }
/* Logo jako v hlavičce webu ZL: jasné, na výšku, místo záře tmavý stín. */
.uc-zl-head > .uc-zl-logo { height: 88px; width: auto; flex: none; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .7)) drop-shadow(0 1px 2px rgba(0, 0, 0, .6)); }
.uc-zl-title { font-weight: 800; font-size: 20px; line-height: 1.2; }
.uc-zl-body { overflow-y: auto; padding: 10px 14px 14px; display: flex; flex-direction: column; gap: 16px; min-height: 0; }   /* bez scrollbar-width: Chrome by jinak ignoroval globální tenký posuvník (sidepanel.css) */
/* Sekce se v rolovacím panelu nesmí smrsknout (karta stavu se jinak zmáčkla do proužku). */
.uc-zl-body > * { flex-shrink: 0; }
.uc-zl-stale { font-size: 11.5px; color: #ffb35a; }
.uc-zl-stale[hidden] { display: none; }

/* ---- karta stavu ---- */
.uc-zl-hero { position: relative; border-radius: 12px; padding: 14px; background: linear-gradient(160deg, color-mix(in srgb, var(--zl-c1) 30%, #18181b), #16161a 70%); border: 1px solid color-mix(in srgb, var(--zl-c2) 35%, transparent); overflow: hidden; }
.uc-zl-hero::before { content: ''; position: absolute; inset: -40% -10% auto auto; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--zl-glow) 40%, transparent), transparent 65%); animation: ucZlDrift 7s ease-in-out infinite alternate; pointer-events: none; }
@keyframes ucZlDrift { to { transform: translate(-60px, 40px); } }
.uc-zl-hero.down { animation: ucZlDown .6s ease; }
@keyframes ucZlDown { 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(2px); } }
.uc-zl-hero-top { position: relative; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.uc-zl-lvl-tag { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--zl-cyan); }
.uc-zl-lvl-tag::before { content: ''; width: 7px; height: 7px; transform: rotate(45deg); background: var(--zl-cyan); box-shadow: 0 0 8px var(--zl-cyan); }
/* Název levelu: místo vždy na 2 řádky (delší se zkrátí), takže pruh pod ním při změně levelu neposkočí; změna prolnutím. */
.uc-zl-lvl-name { margin: 4px 0 0; font-size: 18px; font-weight: 800; line-height: 1.25; min-height: 2.5em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-wrap: balance; transition: opacity .25s ease; }
.uc-zl-lvl-name.swap { opacity: 0; }
.uc-zl-amount { text-align: right; flex: none; }
.uc-zl-amount b { display: block; font: 800 24px/1.1 var(--zl-mono); letter-spacing: -.02em; background: linear-gradient(90deg, #fff, var(--zl-c2)); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; }
.uc-zl-amount span { font-size: 11px; color: var(--zl-muted); }
/* Výřez pruhu (okno levelů, artifact „Okno levelů v pruhu“): 34 px kvůli záři kosočtverců, okraje -10 px → v toku
   zabere 14 px jako dřív. S oknem (.win) ořezává, kraj se skrytými levely zesvětlá maskou (.fade-l / .fade-r).
   Pruh uvnitř se posouvá a mění šířku plynule (styl „Plynulý“ 900 ms). */
.uc-zl-vp { position: relative; height: 34px; margin: 4px 0 -10px; }
.uc-zl-vp.win { overflow: hidden; }
.uc-zl-vp.fade-l { -webkit-mask: linear-gradient(90deg, transparent 0, #000 18px); mask: linear-gradient(90deg, transparent 0, #000 18px); }
.uc-zl-vp.fade-r { -webkit-mask: linear-gradient(90deg, #000 calc(100% - 18px), transparent 100%); mask: linear-gradient(90deg, #000 calc(100% - 18px), transparent 100%); }
.uc-zl-vp.fade-l.fade-r { -webkit-mask: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%); mask: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%); }
.uc-zl-bar { position: absolute; top: 10px; left: 0; width: 100%; height: 14px; border-radius: 999px; background: rgba(255,255,255,.07); box-shadow: inset 0 1px 2px rgba(0,0,0,.5);
  transition: left 900ms cubic-bezier(.25,.8,.25,1), width 900ms cubic-bezier(.25,.8,.25,1); }
/* „+N“ = počet skrytých levelů na té straně okna. */
.uc-zl-more { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; padding: 1px 5px; border-radius: 6px; font: 800 10px ui-monospace, 'JetBrains Mono', Consolas, monospace; color: var(--zl-dim, #7c7a8c); background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.08); opacity: 0; transition: opacity .3s; pointer-events: none; }
.uc-zl-more.l { left: 0; }
.uc-zl-more.r { right: 0; }
.uc-zl-more.on { opacity: 1; }
/* Stálý přechod (žádná putující barevná hrana); živost dává řídký lesk a světlo na čele. */
.uc-zl-fill { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: linear-gradient(90deg, var(--zl-c1), var(--zl-c2)); box-shadow: 0 0 14px color-mix(in srgb, var(--zl-glow) 55%, transparent); transition: width 1.1s cubic-bezier(.2,.8,.2,1); }
.uc-zl-fill::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(100deg, transparent 40%, rgba(255,255,255,.28) 50%, transparent 60%); background-size: 300% 100%; background-position: 150% 0; animation: ucZlSheen 5s ease-in-out infinite; }
.uc-zl-fill::before { content: ''; position: absolute; right: -6px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: radial-gradient(circle, #fff 0 18%, color-mix(in srgb, var(--zl-c2) 80%, transparent) 35%, transparent 70%); animation: ucZlTip 2s ease-in-out infinite; }
@keyframes ucZlSheen { 0%, 55% { background-position: 150% 0; } 100% { background-position: -50% 0; } }
@keyframes ucZlTip { 0%, 100% { opacity: .55; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
.uc-zl-marks { position: absolute; inset: 0; pointer-events: none; }
.uc-zl-mark { position: absolute; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; transform: rotate(45deg); border-radius: 2px; background: #2b2b33; border: 2px solid rgba(255,255,255,.18); }
.uc-zl-mark.done { background: var(--zl-c2); border-color: #fff; box-shadow: 0 0 10px var(--zl-glow); }
.uc-zl-mark.next { border-color: var(--zl-cyan); animation: ucZlBlink 1.4s ease-in-out infinite; }
@keyframes ucZlBlink { 50% { box-shadow: 0 0 12px var(--zl-cyan); } }
.uc-zl-legend { margin-top: 8px; display: flex; justify-content: space-between; font-size: 12px; color: var(--zl-muted); }
.uc-zl-legend b { color: #fff; font-family: var(--zl-mono); font-variant-numeric: tabular-nums; }
.uc-zl-need { color: var(--zl-cyan) !important; }

/* ---- úprava částky (jen mod, pod ikonou ±) ---- */
.uc-zl-adj-t { margin-left: 6px; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 5px; background: transparent; color: var(--zl-dim); opacity: .55; cursor: pointer; display: inline-grid; place-items: center; vertical-align: -4px; }
.uc-zl-adj-t:hover, .uc-zl-adj-t[aria-expanded="true"] { opacity: 1; color: var(--zl-c2); background: rgba(255,255,255,.06); }
.uc-zl-adj-t:focus-visible { outline: 2px solid var(--zl-c2); opacity: 1; }
.uc-zl-adj[hidden] { display: none !important; }
.uc-zl-adj { position: relative; margin-top: 12px; padding-top: 10px; border-top: 1px dashed rgba(255,255,255,.1); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
/* Dotaz před úpravou: znovu dosažený level s jednorázovými akcemi (výchozí Nespouštět). */
.uc-zl-rerun { flex: 1 0 100%; margin-top: 4px; padding: 9px 10px; border-radius: 9px; background: rgba(255,179,90,.08); border: 1px solid rgba(255,179,90,.35); display: grid; gap: 8px; }
.uc-zl-rerun p { margin: 0; font-size: 12px; line-height: 1.4; color: var(--zl-text); }
.uc-zl-rerun-b { display: flex; flex-wrap: wrap; gap: 6px; }
.uc-zl-adj .uc-zl-rerun-b button { font-family: inherit; }
.uc-zl-adj .uc-zl-rerun-b button.def { border-color: var(--zl-c2); }
.uc-zl-adj-l { font-weight: 800; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--zl-muted); margin-right: 2px; }
.uc-zl-adj button { border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.05); color: var(--zl-text); font: 700 12px var(--zl-mono); padding: 5px 9px; border-radius: 7px; cursor: pointer; }
.uc-zl-adj button:hover { border-color: var(--zl-c2); }
.uc-zl-adj button.neg { color: #ff8a8a; }
.uc-zl-adj button:focus-visible, .uc-zl-adj input:focus-visible { outline: 2px solid var(--zl-c2); outline-offset: 1px; }
.uc-zl-adj input { width: 74px; border: 1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.25); color: var(--zl-text); font: 700 12px var(--zl-mono); padding: 5px 8px; border-radius: 7px; }
.uc-zl-adj .go { background: linear-gradient(135deg, var(--zl-c1), var(--zl-c2)); border-color: transparent; color: #fff; font-family: inherit; }
.uc-zl-toast { position: absolute; left: 50%; top: 10px; transform: translate(-50%, -6px); padding: 6px 12px; border-radius: 8px; background: #1f1f25; border: 1px solid rgba(255,255,255,.12); font-size: 12px; font-weight: 600; opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; z-index: 3; white-space: nowrap; }
.uc-zl-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---- hlavičky sekcí ---- */
.uc-zl-sec-h { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 8px; font-weight: 800; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--zl-muted); }
.uc-zl-sec-h span { letter-spacing: 0; text-transform: none; font-weight: 600; color: var(--zl-dim); }
.uc-zl-eye { display: inline-flex; align-items: center; justify-content: center; margin-left: 8px; width: 22px; height: 20px; padding: 0; border: 1px solid rgba(255,255,255,.1); border-radius: 6px; background: transparent; color: var(--zl-muted); cursor: pointer; vertical-align: 1px; }
.uc-zl-eye:hover { color: var(--zl-text); border-color: var(--zl-c2); }
.uc-zl-eye:focus-visible { outline: 2px solid var(--zl-c2); }

/* ---- milníky ---- */
.uc-zl-miles { display: flex; flex-direction: column; gap: 8px; }
.uc-zl-mile { --lc1: var(--zl-c1); --lc2: var(--zl-c2); position: relative; border-radius: 11px; padding: 10px 12px 10px 40px; background: var(--zl-surface); border: 1px solid rgba(255,255,255,.06); }
.uc-zl-mile::before { content: ''; position: absolute; left: 14px; top: 13px; width: 13px; height: 13px; transform: rotate(45deg); border-radius: 3px; background: #2b2b33; border: 2px solid rgba(255,255,255,.2); }
.uc-zl-mile.done::before { background: linear-gradient(135deg, var(--lc1), var(--lc2)); border-color: #fff; box-shadow: 0 0 10px var(--lc2); }
.uc-zl-mile.cur { border-color: color-mix(in srgb, var(--zl-cyan) 50%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--zl-cyan) 9%, var(--zl-surface)), var(--zl-surface)); }
.uc-zl-mile.cur::before { border-color: var(--zl-cyan); animation: ucZlBlink 1.4s ease-in-out infinite; }
/* Nadcházející level: v barvě levelu (cíl, na který se těšíš). */
.uc-zl-mile.lock { background: linear-gradient(100deg, color-mix(in srgb, var(--lc1) 22%, var(--zl-surface)), var(--zl-surface) 75%); border-color: color-mix(in srgb, var(--lc2) 38%, transparent); }
.uc-zl-mile.lock::before { background: transparent; border-color: var(--lc2); box-shadow: 0 0 9px color-mix(in srgb, var(--lc2) 55%, transparent); }
.uc-zl-mile.lock .uc-zl-mile-at { color: var(--lc2); }
.uc-zl-mile.lock .uc-zl-mile-meta { color: color-mix(in srgb, var(--lc2) 55%, var(--zl-muted)); }
.uc-zl-mile.lock .uc-zl-rw { border-color: color-mix(in srgb, var(--lc2) 32%, transparent); background: color-mix(in srgb, var(--lc1) 16%, transparent); }
/* Splněný milník: sbalený do nenápadného šedého řádku, klik rozbalí odměny. */
.uc-zl-mile.done.mini { padding: 0; background: transparent; border-color: rgba(255,255,255,.05); opacity: .45; filter: grayscale(1); transition: opacity .2s, background .2s, filter .2s; }
.uc-zl-mile.done.mini:hover, .uc-zl-mile.done.mini.open { opacity: .9; filter: grayscale(.35); background: var(--zl-surface); }
.uc-zl-mile.done.mini::before { left: 12px; top: 11px; width: 9px; height: 9px; border-width: 1.5px; box-shadow: 0 0 6px var(--lc2); }
.uc-zl-mile-btn { width: 100%; display: flex; align-items: baseline; gap: 8px; padding: 6px 10px 6px 32px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; border-radius: 11px; }
.uc-zl-mile-btn:focus-visible { outline: 2px solid var(--zl-c2); outline-offset: -2px; }
.uc-zl-mile-btn .uc-zl-mile-n { font-size: 12px; font-weight: 700; }
.uc-zl-mile-btn .uc-zl-mile-meta { margin: 0; font-size: 11px; }
.uc-zl-mile-btn .uc-zl-mile-at { font-size: 11px; }
.uc-zl-chev { flex: none; width: 10px; color: var(--zl-dim); transition: transform .2s; align-self: center; }
.uc-zl-mile.open .uc-zl-chev { transform: rotate(90deg); }
.uc-zl-mile.done.mini .uc-zl-rewards { margin: 0; padding: 0 10px 9px 32px; }
.uc-zl-mile.flash { animation: ucZlMileFlash 1.2s ease-out; }
@keyframes ucZlMileFlash { 0% { box-shadow: 0 0 0 0 var(--lc2), inset 0 0 40px var(--lc2); } 100% { box-shadow: 0 0 0 14px transparent, inset 0 0 0 transparent; } }
/* Odkaz ze zamčené akce Triggerů (focusLevel): level a štítek, který ji odemkne, dvakrát zazáří a pak zhasne. */
.uc-zl-mile.uc-zl-focus { opacity: 1; filter: none; animation: ucZlFocus 1.3s ease-in-out 2; }
.uc-zl-rw.uc-zl-focus { border-color: var(--lc2); background: color-mix(in srgb, var(--lc1) 34%, transparent); box-shadow: 0 0 10px var(--lc2); transition: box-shadow .3s, background .3s, border-color .3s; }
@keyframes ucZlFocus { 0%, 100% { box-shadow: 0 0 0 0 transparent; } 45% { box-shadow: 0 0 0 2px var(--lc2), 0 0 18px var(--lc2); } }
@media (prefers-reduced-motion: reduce) { .uc-zl-mile.uc-zl-focus { animation: none; box-shadow: 0 0 0 2px var(--lc2); } }
.uc-zl-mile-top { display: flex; align-items: baseline; gap: 8px; }
.uc-zl-mile-n { font-weight: 800; font-size: 13px; min-width: 0; }
.uc-zl-mile-at { margin-left: auto; flex: none; font: 700 12px var(--zl-mono); color: var(--zl-muted); font-variant-numeric: tabular-nums; }
.uc-zl-mile.done .uc-zl-mile-at { color: var(--lc2); }
.uc-zl-mile-meta { font-size: 11px; color: var(--zl-dim); margin-top: 1px; }
/* Odměny jedna na řádek: název vlevo, délka trvání vpravo. */
.uc-zl-rewards { display: flex; flex-direction: column; gap: 4px; margin-top: 7px; }
.uc-zl-rw { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 8px; border-radius: 7px; font-size: 11.5px; font-weight: 600; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); color: #dedee3; }
/* Rich název odměny ze ZL (labelHtml): odkaz v barvě textu, podtržený. */
.uc-zl-rw a, .uc-zl-run a, .uc-zr-rn a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.uc-zl-rw small { color: var(--zl-dim); font-weight: 600; font-size: inherit; }
.uc-zl-mile.done .uc-zl-rw { border-color: color-mix(in srgb, var(--lc2) 35%, transparent); background: color-mix(in srgb, var(--lc1) 14%, transparent); }
.uc-zl-rw.pop { animation: ucZlRwPop .5s cubic-bezier(.2,1.6,.4,1) both; }
@keyframes ucZlRwPop { from { transform: scale(.6); opacity: 0; } }

/* ---- běžící odměny ---- */
.uc-zl-live { display: flex; flex-direction: column; gap: 6px; }
.uc-zl-live[hidden] { display: none; }
.uc-zl-live.uc-h-anim[hidden] { display: flex !important; }   /* poslední odměna skončila → seznam se plynule sbalí (animateHeightChange) */
.uc-zl-run { position: relative; display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; background: var(--zl-surface); overflow: hidden; }
.uc-zl-dot { width: 8px; height: 8px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 8px #3ddc84; animation: ucZlBlink2 1.6s ease-in-out infinite; flex: none; }
@keyframes ucZlBlink2 { 50% { opacity: .35; } }
.uc-zl-run b { font-size: 12.5px; min-width: 0; }
/* Obchod odměn: koupená odměna mezi běžícími (core/zl-panel.js `purchased`). */
.uc-zl-bought { display: inline-block; margin-left: 5px; padding: 0 5px; border-radius: 4px; background: rgba(123,211,107,.15); color: #9be38a; font-size: 9.5px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; vertical-align: 1px; cursor: default; }
/* Nasčítaná trvalá odměna z více levelů (×3) — kolikrát ji streamer musí splnit. */
.uc-zl-stack { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 5px; background: color-mix(in srgb, var(--zl-cyan, #3be8ff) 16%, transparent); color: var(--zl-cyan, #3be8ff); font: 800 11.5px var(--zl-mono); font-variant-numeric: tabular-nums; vertical-align: 1px; cursor: default; }
.uc-zl-left { margin-left: auto; font: 700 12px var(--zl-mono); color: var(--zl-text); font-variant-numeric: tabular-nums; flex: none; }
.uc-zl-left.inf { color: var(--zl-muted); font-family: inherit; font-weight: 600; }
/* Rush ve frontě: dlouhý text se zalomí vpravo, název odměny nevytlačí. */
.uc-zl-left.rq { flex: 0 1 auto; min-width: 0; white-space: normal; text-align: right; font-size: 11px; line-height: 1.25; }
.uc-zl-ttl { position: absolute; left: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--zl-c1), var(--zl-cyan)); transition: width 1s linear; }

/* ---- top za stream (odznak Rámy) ---- */
.uc-zl-top { display: flex; flex-direction: column; gap: 6px; }
.uc-zl-don { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 10px; background: var(--zl-surface); position: relative; overflow: hidden; }
.uc-zl-don.r1 { box-shadow: inset 0 0 0 1px rgba(255, 200, 60, .22); }
.uc-zl-rank { position: relative; width: 56px; height: 46px; display: grid; place-items: center; }
.uc-zl-rank svg { display: block; overflow: visible; }
.uc-zl-nm { font-weight: 700; font-size: 16px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-zl-sh { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, color-mix(in srgb, var(--zl-c1) 28%, transparent), transparent); transition: width .8s; }
.uc-zl-am { font: 800 15px var(--zl-mono); font-variant-numeric: tabular-nums; position: relative; }
.uc-zl-rb1 { filter: drop-shadow(0 0 5px rgba(255, 190, 40, .55)); animation: ucZlLaurel 4s ease-in-out infinite; }
.uc-zl-rb2 { filter: drop-shadow(0 0 3px rgba(220, 230, 255, .35)); }
@keyframes ucZlLaurel { 0%, 100% { filter: drop-shadow(0 0 3px rgba(255,190,40,.4)); } 50% { filter: drop-shadow(0 0 9px rgba(255,190,40,.85)); } }
.uc-zl-rb .uc-zl-hx-spin { transform-box: view-box; transform-origin: 13px 14px; }
.uc-zl-rb1 .uc-zl-hx-spin { animation: ucZlHxSpin 14s linear infinite; }
@keyframes ucZlHxSpin { to { transform: rotate(360deg); } }
.uc-zl-rb .uc-zl-hx-glow { transform-box: view-box; transform-origin: 13px 14px; animation: ucZlHxGlow 2.6s ease-in-out infinite; }
@keyframes ucZlHxGlow { 0%, 100% { opacity: .35; transform: scale(.85); } 50% { opacity: .8; transform: scale(1.08); } }
.uc-zl-rb .uc-zl-hx-sweep { animation: ucZlHxSweep 3.4s ease-in-out infinite; }
@keyframes ucZlHxSweep { 0% { transform: translateX(-14px); } 55%, 100% { transform: translateX(26px); } }
.uc-zl-rb .uc-zl-hx-pt { opacity: 0; transform-box: fill-box; transform-origin: center; animation: ucZlHxPt 3.2s ease-out infinite; }
@keyframes ucZlHxPt { 0% { opacity: 0; transform: translate(0, 0) scale(.6); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), -26px) scale(.15); } }
.uc-zl-rb .uc-zl-spark { transform-box: fill-box; transform-origin: center; animation: ucZlSpark 1.8s ease-in-out infinite; }
.uc-zl-rb .uc-zl-spark.s2 { animation-delay: .9s; }
@keyframes ucZlSpark { 0%, 100% { opacity: .2; transform: scale(.5) rotate(0); } 50% { opacity: 1; transform: scale(1.2) rotate(45deg); } }

/* ---- level up ---- */
.uc-zl-ov { position: absolute; inset: 0; pointer-events: none; display: grid; place-items: center; z-index: 4; }
.uc-zl-ov[hidden] { display: none !important; }
.uc-zl-burst { font-weight: 900; font-size: 34px; line-height: 1; letter-spacing: .08em; color: #fff; text-shadow: 0 0 18px var(--zl-glow), 0 0 40px var(--zl-pink); animation: ucZlBurst 1.8s cubic-bezier(.2,.9,.3,1) both; text-align: center; }
.uc-zl-burst small { display: block; margin-top: 8px; font-weight: 700; font-size: 13px; letter-spacing: .02em; color: var(--zl-cyan); text-shadow: 0 0 10px var(--zl-cyan); }
@keyframes ucZlBurst { 0% { transform: scale(.4); opacity: 0; } 25% { transform: scale(1.08); opacity: 1; } 75% { opacity: 1; } 100% { transform: scale(1); opacity: 0; } }
.uc-zl-confetti { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; }

@media (prefers-reduced-motion: reduce) {
  .uc-zl *, .uc-zl *::before, .uc-zl *::after, .uc-zl-btn, .uc-zl-btn::after { animation: none !important; transition: none !important; }
  .uc-zl-rb .uc-zl-hx-pt { opacity: .7; }
}
.uc-zl-run.paused .uc-zl-dot { background: #ffb35a; box-shadow: 0 0 8px #ffb35a; animation: none; }

/* ===== Karta „/zl remaining“ v chatu (core/zl-remaining.js) — varianta A · Odpočet z artifactu (pokyn usera 2026-10-14).
   Barvy z --zl-* (téma lišty ZL nebo brand UC podle volby diváka v panelu). Záře kruhu nesmí být oříznutá. */
.msg.uc-zr {
  --zl-c1: #8b3fd9; --zl-c2: #c76bff; --zl-glow: #b46eff; --zl-pink: #ff2d95; --zl-cyan: #00f0ff;
  --zr-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  position: relative; isolation: isolate; overflow: visible; display: flex; flex-direction: column; gap: 12px;   /* visible: hover akce zprávy (.msg-actions, top -14px) se nesmí oříznout */
  margin: 6px 0; padding: 14px 14px 12px; border-radius: 16px; color: #efeff1; line-height: 1.45;
  background: radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--zl-c1) 32%, transparent), transparent 60%),
    radial-gradient(80% 70% at 100% 100%, color-mix(in srgb, var(--zl-pink) 16%, transparent), transparent 60%), #15111d;
  border: 1px solid color-mix(in srgb, var(--zl-c2) 45%, transparent);
  box-shadow: 0 0 30px color-mix(in srgb, var(--zl-glow) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.06);
  animation: ucZrEnter .7s cubic-bezier(.2,.9,.25,1.15) both;
}
.msg.uc-zr *, .msg.uc-zr *::before, .msg.uc-zr *::after { box-sizing: border-box; }
/* Lesk přes kartu posunem pozadí (ne transformací), takže karta nemusí mít overflow: hidden. */
.msg.uc-zr::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(105deg, transparent 45%, rgba(255,255,255,.10) 50%, transparent 55%) no-repeat; background-size: 300% 100%; background-position: 100% 0; animation: ucZrSheenBg 5.5s ease-in-out 1s infinite; }
@keyframes ucZrSheenBg { 0%, 70% { background-position: 100% 0; } 100% { background-position: 0% 0; } }
.uc-zr-kicker { display: flex; align-items: center; gap: 6px; font: 800 10.5px var(--zr-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--zl-cyan); }
.uc-zr-kicker::before { content: ''; width: 7px; height: 7px; transform: rotate(45deg); background: var(--zl-cyan); box-shadow: 0 0 8px var(--zl-cyan); flex: none; }
.uc-zr-kicker .ts { margin-left: auto; color: #7c7a8c; font: 600 11px var(--zr-mono); letter-spacing: 0; text-transform: none; }
.uc-zr-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.uc-zr-ring { position: relative; width: 86px; height: 86px; flex: none; display: grid; place-items: center; }
.uc-zr-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); overflow: visible; }
.uc-zr-ring circle { fill: none; stroke-width: 5; }
.uc-zr-trk { stroke: rgba(255,255,255,.08); stroke-width: 6 !important; }
.uc-zr-val { stroke-linecap: round; animation: ucZrRing 1.6s cubic-bezier(.2,.8,.2,1) both; }
/* Kruh „5 · Mihotání + projíždění“: záře = rozmazané kopie oblouku se stejným přechodem (v každém místě barva oblouku). */
.uc-zr-ring circle.uc-zr-glow-w { stroke-width: 16; opacity: .8; }
.uc-zr-ring circle.uc-zr-glow-n { stroke-width: 8; }
.uc-zr-ring circle.uc-zr-core { stroke: #fff; stroke-width: 1.4; opacity: .75; }
.uc-zr-halo { animation: ucZrFlicker 4.5s infinite 1.6s; }
@keyframes ucZrFlicker { 0%, 47%, 49%, 52%, 100% { opacity: 1; } 48% { opacity: .55; } 51% { opacity: .7; } }
/* Kometa: ocas naroste ze začátku oblouku, projede, zkrátí se a vpije do čela (čelo vzplane), pauza. --zr-len = délka oblouku. */
.uc-zr-ring circle.uc-zr-comet { stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 0 245; opacity: 0; animation: ucZrComet 3.6s linear infinite 1.6s; }
@keyframes ucZrComet {
  0%   { stroke-dasharray: 0 245;  stroke-dashoffset: 0; opacity: 0; animation-timing-function: ease-out; }
  14%  { stroke-dasharray: 20 245; stroke-dashoffset: -6; opacity: 1; animation-timing-function: cubic-bezier(.45,.05,.55,.95); }
  70%  { stroke-dasharray: 20 245; stroke-dashoffset: calc(32px - var(--zr-len)); opacity: 1; animation-timing-function: ease-in; }
  82%  { stroke-dasharray: 2 245;  stroke-dashoffset: calc(0px - var(--zr-len)); opacity: 0; }
  100% { stroke-dasharray: 0 245;  stroke-dashoffset: calc(0px - var(--zr-len)); opacity: 0; }
}
.uc-zr-head { fill: #fff; }
.uc-zr-flare { transform-box: fill-box; transform-origin: center; animation: ucZrFlare 3.6s linear infinite 1.6s; opacity: .55; }
@keyframes ucZrFlare { 0%, 66% { opacity: .55; transform: scale(1); } 78% { opacity: 1; transform: scale(1.9); } 92%, 100% { opacity: .55; transform: scale(1); } }
.uc-zr-logo { position: relative; height: 54px; width: auto; display: block; filter: drop-shadow(0 4px 6px rgba(0,0,0,.7)) drop-shadow(0 1px 2px rgba(0,0,0,.6)); }
.uc-zr-big { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.uc-zr-lbl { font-weight: 700; font-size: 12px; color: #adadb8; }
/* Částka „G5 · Hologram + jemná barevná záře“ (pokyn usera 2026-10-15): přechod v barvách tématu pomalu plyne (oběh 40 s),
   záře = rozmazaná kopie textu se stejným přechodem. Text i záře řídí jedna animovaná vlastnost --zr-hp → nerozjedou se. */
@property --zr-hp { syntax: "<percentage>"; inherits: true; initial-value: 0%; }
@keyframes ucZrHolo { to { --zr-hp: 300%; } }
.uc-zr-num { --zr-holo: linear-gradient(100deg, var(--zl-pink), var(--zl-c2), color-mix(in srgb, var(--zl-c2) 45%, var(--zl-cyan)), var(--zl-cyan), var(--zl-c2), var(--zl-pink));
  position: relative; isolation: isolate; font: 800 38px/1 var(--zr-mono); letter-spacing: -.02em; white-space: nowrap; font-variant-numeric: tabular-nums;
  background: var(--zr-holo) var(--zr-hp) 0 / 300% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: ucZrHolo 40s linear infinite; }
.uc-zr-num::before { content: attr(data-t); position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--zr-holo) var(--zr-hp) 0 / 300% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; filter: blur(10px); opacity: .5; }
.uc-zr-num.uc-zr-done { font-size: 22px; line-height: 1.15; white-space: normal; text-wrap: balance; }
.uc-zr-to { font-weight: 600; font-size: 12.5px; color: #adadb8; }
.uc-zr-to b { color: #efeff1; }
.msg.uc-zr .uc-zl-vp { margin: -10px 0; }
.msg.uc-zr .uc-zl-fill { animation: ucZrFill 1.6s cubic-bezier(.2,.8,.2,1) both; }
.uc-zr-scale { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; font-size: 11.5px; color: #adadb8; }
.uc-zr-scale b { font-family: var(--zr-mono); color: #efeff1; }
.uc-zr-sec { display: flex; flex-direction: column; gap: 6px; }
.uc-zr-sec[hidden] { display: none; }
.uc-zr-h { font: 800 10.5px var(--zr-mono); letter-spacing: .14em; text-transform: uppercase; color: #7c7a8c; }
.uc-zr-rw { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 9px; min-width: 0; font-weight: 700; font-size: 13px;
  border: 1px solid color-mix(in srgb, var(--zl-cyan) 35%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--zl-cyan) 10%, transparent), color-mix(in srgb, var(--zl-c2) 8%, transparent)); box-shadow: 0 0 14px color-mix(in srgb, var(--zl-cyan) 12%, transparent) inset; }
.uc-zr-rn { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-zr-rw small { font-weight: 600; font-size: 11px; color: #adadb8; flex: none; }
.uc-zr-lock { width: 13px; height: 13px; flex: none; color: var(--zl-cyan); animation: ucZrWiggle 2.8s ease-in-out infinite; }
.uc-zr-live { display: flex; flex-wrap: wrap; gap: 6px; }
.uc-zr-run { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 11.5px; padding: 4px 8px; border-radius: 99px; background: rgba(61,220,132,.10); border: 1px solid rgba(61,220,132,.3); }
.uc-zr-run::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 6px #3ddc84; flex: none; }
.uc-zr-run.paused { background: rgba(255,179,90,.10); border-color: rgba(255,179,90,.3); }
.uc-zr-run.paused::before { background: #ffb35a; box-shadow: 0 0 6px #ffb35a; }
.uc-zr-run em { font: 800 11px var(--zr-mono); font-style: normal; color: #adadb8; font-variant-numeric: tabular-nums; }
.uc-zr-cta { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 12.5px; color: #adadb8; }
/* Tlačítko jen u kanálu s QR donem (body.uc-dono — addon i web); OBS ho nedostane vůbec. */
body:not(.uc-dono) .uc-zr-cta { display: none; }
.uc-zr-dono { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px 8px 11px; border: 0; border-radius: 11px; cursor: pointer;
  font-family: inherit; font-weight: 800; font-size: 13px; color: #fff;
  background: linear-gradient(135deg, var(--zl-pink), var(--zl-c1) 55%, color-mix(in srgb, var(--zl-c1) 70%, #2b1a8a));
  box-shadow: 0 0 0 1px rgba(255,255,255,.18) inset, 0 6px 18px color-mix(in srgb, var(--zl-pink) 35%, transparent), 0 0 22px color-mix(in srgb, var(--zl-glow) 35%, transparent);
  transition: transform .15s ease, box-shadow .2s ease; }
.uc-zr-dono svg { width: 17px; height: 17px; flex: none; }
.uc-zr-dono::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform: translateX(-120%); animation: ucZrSheen 3.2s ease-in-out 1.2s infinite; }
.uc-zr-dono:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(255,255,255,.25) inset, 0 8px 24px color-mix(in srgb, var(--zl-pink) 50%, transparent), 0 0 30px color-mix(in srgb, var(--zl-glow) 50%, transparent); }
.uc-zr-dono:focus-visible { outline: 2px solid var(--zl-cyan); outline-offset: 2px; }
/* Příchod karty přes samostatné vlastnosti translate / scale, NE transform: OBS s „nové nahoře“ (body.uc-reverse) převrací
   každou zprávu transform: scaleY(-1) a animace s transform: none (fill both) ho přebila → karta vzhůru nohama (2026-10-15). */
@keyframes ucZrEnter { from { opacity: 0; translate: 0 14px; scale: .97; } to { opacity: 1; translate: none; scale: none; } }
@keyframes ucZrSheen { 0%, 70% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes ucZrRing { from { stroke-dashoffset: var(--zr-ring); } }
@keyframes ucZrFill { from { width: 0; } }
@keyframes ucZrWiggle { 0%, 80%, 100% { transform: rotate(0); } 84% { transform: rotate(-12deg); } 88% { transform: rotate(10deg); } 92% { transform: rotate(-6deg); } }
@media (prefers-reduced-motion: reduce) {
  .msg.uc-zr, .msg.uc-zr *, .msg.uc-zr::after, .msg.uc-zr *::after { animation: none !important; transition: none !important; }
}

/* Emoty v názvech odměn (labelHtml = renderPlain): jednotná velikost 32 px, ne velikost z chatu (pokyn usera 2026-10-16). */
.uc-zl-rw img.emote, .uc-zl-run img.emote, .uc-zr-rw img.emote, .uc-zr-run img.emote { height: 32px !important; width: auto !important; max-height: 32px !important; vertical-align: middle; margin: 0 2px; }   /* bez záporného okraje: řádek se emotu přizpůsobí */

/* ---- Proměnné (core/counters.js, maketa 8ZuXf85GVY7uJLgNQF7Lut): proužek nad chatem, detail, nabídka sad, mod záložka ---- */
@property --fl { syntax: '<length>'; inherits: true; initial-value: 0px; }
.uc-cvs[hidden] { display: none; }
.uc-cv-strip { display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 12px; border-top: 1px solid var(--border, #2f2f35); background: linear-gradient(90deg, color-mix(in srgb, #8b3fd9 22%, #18181b), #18181b); font-size: 12.5px; color: #efeff1; cursor: pointer; }
.uc-cv-strip[hidden] { display: none; }
.uc-cv-strip:focus-visible { outline: 2px solid #c76bff; outline-offset: -2px; }
.uc-cv-strip .ic { color: #c76bff; display: grid; place-items: center; flex: none; }
.uc-cv-strip .ic svg { width: 16px; height: 16px; }
.uc-cv-strip .items { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; display: block; --fl: 0px;
  -webkit-mask: linear-gradient(90deg, transparent 0, #000 var(--fl), #000 calc(100% - 22px), transparent); mask: linear-gradient(90deg, transparent 0, #000 var(--fl), #000 calc(100% - 22px), transparent); }
.uc-cv-strip .items .ucg-mq-in { display: inline-flex; gap: 10px; will-change: transform; }
.uc-cv-strip .items b { font-family: 'JetBrains Mono', ui-monospace, Consolas, monospace; font-variant-numeric: tabular-nums; }
.uc-cv-strip .items .done b { color: #3ddc84; }
.uc-cv-strip .set { font-weight: 800; color: #c76bff; }
.uc-cv-strip .set.pz { color: #ffb35a; }
/* Název sady s odkazem ze ZL (url): klik otevře stránku, podtržení jen při najetí. */
.uc-cv-lnk { color: inherit; text-decoration: none; cursor: pointer; }
.uc-cv-lnk:hover, .uc-cv-lnk:focus-visible { text-decoration: underline; text-underline-offset: 2px; }
.uc-cvx-h .uc-cv-lnk { color: #efeff1; font-size: 13px; font-weight: 700; }
.uc-cv-strip .pz:not(.set) { opacity: .55; }
/* Posun přetékajícího proužku (~45 px/s tam i zpět, pauza na konci): myš = hned, dotyk = s pauzou na začátku; levé
   zeslabení jen během jízdy (na krajích je text celý čitelný). */
.uc-cv-strip .items.run { animation: ucCvFl var(--cvmq-t, 8s) ease-in-out infinite; }
.uc-cv-strip .items.run .ucg-mq-in { animation: ucCvMq var(--cvmq-t, 8s) ease-in-out infinite; }
.uc-cv-strip .items.run.touch { animation-name: ucCvFlT; animation-duration: calc(var(--cvmq-t, 8s) + 1.5s); }
.uc-cv-strip .items.run.touch .ucg-mq-in { animation-name: ucCvMqT; animation-duration: calc(var(--cvmq-t, 8s) + 1.5s); }
@keyframes ucCvMq { 0% { transform: translateX(0); } 42%, 58% { transform: translateX(var(--mq-d)); } 100% { transform: translateX(0); } }
@keyframes ucCvMqT { 0%, 12% { transform: translateX(0); } 48%, 62% { transform: translateX(var(--mq-d)); } 98%, 100% { transform: translateX(0); } }
@keyframes ucCvFl { 0% { --fl: 0px; } 8%, 92% { --fl: 16px; } 100% { --fl: 0px; } }
@keyframes ucCvFlT { 0%, 12% { --fl: 0px; } 18%, 92% { --fl: 16px; } 98%, 100% { --fl: 0px; } }
.uc-cvx-x { margin-left: auto; background: none; border: 0; color: #adadb8; font-size: 18px; line-height: 1; cursor: pointer; padding: 0 2px; flex: none; }
.uc-cvx-x:hover { color: #efeff1; }
/* Ikona mezi zavřenými lištami (giveaway.css .uc-bar-reopen = rozměr a mezery). */
.uc-cv-reopen { color: #c76bff; }
/* Nabídka zavřených sad (každá vlastní řádek) — styl nabídky „Zavřené lišty“ (layout-fit.css .uc-lf-gmenu), s názvy. */
.uc-lf-gmenu.uc-cvr { flex-direction: column; min-width: 150px; z-index: 60; }
.uc-lf-gmenu.uc-cvr .it { width: auto; height: 32px; justify-content: flex-start; gap: 8px; padding: 0 10px; font-size: 12.5px; font-weight: 700; color: #efeff1; }
.uc-lf-gmenu.uc-cvr .it svg { color: #c76bff; width: 16px; height: 16px; }
.uc-lf-gmenu.uc-cvr .it small { margin-left: auto; padding-left: 10px; font-weight: 600; font-size: 11px; color: #848494; }
/* Detail sady (panel přes panel-morph registerPanel, pozice podle proužku). */
.uc-cvx { position: fixed; z-index: 45; display: flex; flex-direction: column; gap: 6px; padding: 10px; overflow: auto; box-sizing: border-box; border-radius: 14px; color: #efeff1; font-size: 14px; line-height: 1.5; outline: none;
  --zl-surface: #18181b; --zl-muted: #adadb8; --zl-dim: #848494; --zl-text: #efeff1; --zl-mono: 'JetBrains Mono', ui-monospace, Consolas, monospace; --zl-c1: #8b3fd9; --zl-c2: #c76bff; --zl-cyan: #00f0ff;
  background: radial-gradient(120% 70% at 0% 0%, color-mix(in srgb, #8b3fd9 22%, transparent), transparent 60%), #141418;
  border: 1px solid color-mix(in srgb, #c76bff 40%, transparent); box-shadow: 0 24px 60px rgba(0,0,0,.65), 0 0 40px color-mix(in srgb, #b46eff 18%, transparent); }
.uc-cvx.hidden { display: none; }
.uc-cvx-h { display: flex; align-items: center; gap: 7px; padding: 2px 2px 0; color: #c76bff; }
.uc-cvx-h svg { width: 16px; height: 16px; flex: none; }
.uc-cvx-h b { color: #efeff1; font-size: 13px; }
.uc-cvx-h .m { margin-left: auto; color: #848494; font-size: 11.5px; }
.uc-cvx-pz { font-size: 10.5px; font-weight: 800; color: #ffb35a; background: color-mix(in srgb, #ffb35a 14%, transparent); border: 1px solid color-mix(in srgb, #ffb35a 40%, transparent); border-radius: 999px; padding: 0 6px; }
.uc-cvx-empty { color: #848494; font-size: 12.5px; padding: 20px 6px; text-align: center; }
.uc-cv-run { display: flex; flex-direction: column; gap: 6px; }
.uc-cv-run.pz .uc-cv-it, .uc-cv-run.pz .uc-cvm-it { opacity: .7; }
.uc-cv-it { position: relative; padding: 8px 12px 9px; border-radius: 10px; background: var(--zl-surface, #18181b); display: grid; grid-template-columns: auto 1fr auto; gap: 1px 10px; align-items: center; overflow: hidden; }
.uc-cv-it .em { font-size: 17px; grid-row: span 2; width: 22px; text-align: center; line-height: 1; }
.uc-cv-it .nm { font-weight: 700; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-cv-it .ct { font: 800 14px var(--zl-mono); font-variant-numeric: tabular-nums; text-align: right; }
.uc-cv-it .ct small { color: var(--zl-dim); font-weight: 600; font-size: 12px; }
.uc-cv-it .sub { grid-column: 2 / 4; display: flex; justify-content: space-between; gap: 8px; font-size: 11px; color: var(--zl-dim); }
.uc-cv-it .rest { color: #ffb35a; font-weight: 700; }
.uc-cv-it.done .ct, .uc-cv-it.done .rest { color: #3ddc84; }
.uc-cv-it.zero { opacity: .5; }
/* Animace cviku ze ZL místo emoji (video 48 px, šířka podle poměru stran) — proužek, detail, mod záložka. */
.uc-cv-anim { display: block; width: auto; max-height: 48px; flex: none; pointer-events: none; object-fit: contain; }
.uc-cv-it .uc-cv-anim { grid-row: span 2; justify-self: center; align-self: center; }
.uc-cv-strip .items .ucg-mq-in > span.an { display: inline-flex; align-items: center; gap: 4px; }
.uc-cv-strip .items .ucg-mq-in { align-items: center; }
.uc-cv-it .bar, .uc-cvm-it .bar { position: absolute; left: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, #8b3fd9, #00f0ff); transition: width .4s ease; }
/* Mod záložka Proměnné (admin panel): kompaktní položka na 2 řádky. */
.uc-cvp { display: flex; flex-direction: column; gap: 8px; }
.uc-cvp .uc-cv-run { gap: 4px; }
.uc-cvm-it { position: relative; padding: 6px 8px 8px; border-radius: 8px; background: #141418; display: grid; gap: 4px; overflow: hidden; color: #efeff1; }
.uc-cvm-it .t { display: flex; align-items: center; gap: 6px; font-size: 12.5px; min-width: 0; }
.uc-cvm-it .em { font-size: 15px; line-height: 1; width: 18px; text-align: center; flex: none; }
.uc-cvm-it .nm { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-cvm-it .rest { font-size: 11px; font-weight: 700; color: #ffb35a; white-space: nowrap; }
.uc-cvm-it.done .rest, .uc-cvm-it.done .ct { color: #3ddc84; }
.uc-cvm-it .ct { margin-left: auto; font: 800 13px 'JetBrains Mono', ui-monospace, Consolas, monospace; white-space: nowrap; }
.uc-cvm-it .ct small { color: #848494; font-weight: 600; font-size: 11px; }
.uc-cvm-it .ct.nxz { font: 600 11px Inter, system-ui, sans-serif; color: #848494; }
.uc-cvm-it .c { display: flex; align-items: center; gap: 4px; min-width: 0; }
.uc-cvm-it .nx { flex: 1; min-width: 0; font-size: 11px; color: #848494; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-cvm-it .nx.ok { color: #3ddc84; font-weight: 700; }
.uc-cvm-it button, .uc-cvm-it input { height: 24px; box-sizing: border-box; border-radius: 6px; font: 800 11.5px 'JetBrains Mono', ui-monospace, Consolas, monospace; color: #efeff1; flex: none; }
.uc-cvm-it button { min-width: 30px; padding: 0 6px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); cursor: pointer; transition: background .15s, transform .1s; }
.uc-cvm-it button:hover { background: rgba(255,255,255,.12); }
.uc-cvm-it button:active { transform: scale(.96); }
.uc-cvm-it button:disabled { opacity: .45; cursor: default; }
.uc-cvm-it button.plus { background: linear-gradient(135deg, #8b3fd9, #c76bff); border-color: transparent; color: #fff; }
.uc-cvm-it button.neg { color: #ff8a8a; }
.uc-cvm-it button:focus-visible, .uc-cvm-it input:focus-visible { outline: 2px solid #c76bff; outline-offset: 1px; }
.uc-cvm-it input { width: 42px; padding: 0 2px 0 6px; background: rgba(0,0,0,.25); border: 1px solid color-mix(in srgb, #ffd93d 70%, transparent); }
.uc-cvm-it input.uc-sa-neg { color: #ff8a8a; }
.uc-cvm-it .bar { height: 2px; }
.uc-cvm-it.zero { opacity: .5; }
@media (prefers-reduced-motion: reduce) {
  .uc-cv-it .bar, .uc-cvm-it .bar, .uc-cvm-it button { transition: none; }
  .uc-cv-strip .items.run, .uc-cv-strip .items.run .ucg-mq-in { animation: none; }
}
