/* Stav serveru u pole (core/server-status.js, status.jouki.cz): modrá pulzující = aktualizace, oranžová = výpadek,
   modrá klidná = zpráva. Addon i web, OBS ne (pole tam není). */
.uc-srv { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: 0 2px; border-radius: 50%; cursor: help; color: #4aa3ff; }
.uc-srv[hidden] { display: none; }
.uc-srv svg { display: block; }
.uc-srv.uc-srv-updating { color: #4aa3ff; animation: ucSrvPulse 1.6s ease-in-out infinite; --srv-rgb: 74, 163, 255; }
.uc-srv.uc-srv-down { color: #ff8c00; animation: ucSrvPulse 1.6s ease-in-out infinite; --srv-rgb: 255, 140, 0; }
.uc-srv.uc-srv-notice { color: #4aa3ff; filter: drop-shadow(0 0 3px rgba(74, 163, 255, .6)); }
@keyframes ucSrvPulse {
  0%, 100% { filter: drop-shadow(0 0 1px rgba(var(--srv-rgb), .5)); transform: scale(1); }
  50% { filter: drop-shadow(0 0 7px rgba(var(--srv-rgb), 1)); transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) { .uc-srv { animation: none !important; filter: drop-shadow(0 0 4px currentColor); } }

/* Pruh nad polem (createServerStatusStrip): vyjede při aktualizaci / výpadku / zprávě, po skončení zajede. */
/* Svisle na středu mezi pilulkou nad ním a horní hranou pole: podle screenshotu z hlášení 2026-10-13 bylo 5 px nahoře a 11 px dole → okraje 7 / 5 px (obojí cca 8 px). */
.uc-srv-strip { display: flex; align-items: center; gap: 8px; margin: 7px 8px 5px; padding: 6px 10px; border-radius: 8px; font-size: 13px; font-weight: 700; line-height: 1.3;
  color: #d6ebff; background: rgba(47, 116, 224, .12); border: 1px solid rgba(74, 163, 255, .45); cursor: help; }
.uc-srv-strip[hidden] { display: none; }
.uc-srv-strip[data-state="down"] { color: #ffe0bf; background: rgba(255, 140, 0, .12); border-color: rgba(255, 140, 0, .5); }
.uc-srv-strip .uc-srv { margin: 0; width: 18px; height: 18px; cursor: inherit; }
/* Výška řádku = výška ikony → text je s ikonou na středu (Inter má vysoký spodní okraj, line-height 1.3 ho posouval dolů). */
.uc-srv-strip .uc-srv-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; font-size: 14px; line-height: 18px;
  --t-a: #2b64c9; --t-b: #5aaeff; --t-shine: rgba(70, 140, 230, .95);
  color: transparent; -webkit-background-clip: text; background-clip: text; background-repeat: no-repeat;
  /* Dvě vrstvy (návrh E schválený userem 2026-10-13): nahoře úzký lesk, který se k podkladu přičítá (screen) —
     tmavou část zvedne ke světle modré, světlou ještě výš, takže je vidět po celé délce; dole gradient tmavší → světlejší. */
  background-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 40%, var(--t-shine) 50%, rgba(0, 0, 0, 0) 60%), linear-gradient(90deg, var(--t-a), var(--t-b));
  background-size: 300% 100%, 100% 100%; background-blend-mode: screen, normal; background-position: 100% 0, 0 0; }
.uc-srv-strip[data-state="updating"] .uc-srv-text, .uc-srv-strip[data-state="down"] .uc-srv-text { animation: ucSrvSweep 3.2s ease-in-out infinite, ucSrvTxtPulse 2.4s ease-in-out infinite; }
.uc-srv-strip[data-state="down"] .uc-srv-text { --t-a: #c96a12; --t-b: #ffb347; --t-shine: rgba(230, 140, 60, .95); }
@keyframes ucSrvSweep { 0% { background-position: 100% 0, 0 0; } 55%, 100% { background-position: 0% 0, 0 0; } }
@keyframes ucSrvTxtPulse { 0%, 100% { filter: brightness(.85); } 50% { filter: brightness(1.35) drop-shadow(0 0 6px rgba(74, 163, 255, .55)); } }
@media (prefers-reduced-motion: reduce) { .uc-srv-strip .uc-srv-text { animation: none !important; } }
