/* live-ticker.css — real-time alert toasts (top-right). Glass + cosmic palette. */
.torus-live { position: fixed; top: 70px; right: 18px; z-index: 2147483340; display: flex; flex-direction: column; gap: 10px; width: min(340px, calc(100vw - 36px)); pointer-events: none; }
.tlive {
  pointer-events: auto; display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px;
  border-radius: 13px; color: var(--text-primary, #eef);
  background: linear-gradient(180deg, var(--glass-3, rgba(22,24,42,0.94)), var(--glass-2, rgba(16,18,32,0.94)));
  border: 1px solid var(--glass-border-2, rgba(255,255,255,0.12)); border-left: 3px solid var(--accent-amber, #fbbf24);
  box-shadow: 0 14px 40px rgba(0,0,0,0.5); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); cursor: pointer;
  opacity: 0; transform: translateX(26px) scale(0.98);
  transition: opacity 0.26s var(--ease-out, ease), transform 0.32s var(--ease-spring, cubic-bezier(0.34,1.3,0.4,1));
}
.tlive.is-open { opacity: 1; transform: none; }
.tlive.is-out { opacity: 0; transform: translateX(26px) scale(0.98); }
.tlive.is-crit { border-left-color: var(--accent-rose, #fb7185); box-shadow: 0 14px 46px rgba(190,40,60,0.36); }
.tlive-ic { flex: 0 0 auto; margin-top: 1px; color: var(--accent-amber, #fbbf24); }
.tlive.is-crit .tlive-ic { color: var(--accent-rose, #fb7185); animation: tlive-pulse 1s ease-in-out infinite; }
@keyframes tlive-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.tlive-body { min-width: 0; flex: 1 1 auto; }
.tlive-t { font-family: var(--font-display, inherit); font-weight: 700; font-size: 12.5px; letter-spacing: -0.01em; display: flex; align-items: center; gap: 6px; }
.tlive-tag { font-size: 8.5px; font-weight: 700; letter-spacing: 0.06em; color: var(--accent-rose, #fb7185); background: rgba(251,113,133,0.16); padding: 1px 5px; border-radius: 5px; }
.tlive-m { font-size: 11.5px; color: var(--text-muted, #aab); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tlive-x { flex: 0 0 auto; width: 20px; height: 20px; display: grid; place-items: center; padding: 0; border: none; background: transparent; color: var(--text-dim, #889); font-size: 17px; line-height: 1; border-radius: 6px; cursor: pointer; opacity: 0.6; transition: opacity 0.15s ease, color 0.15s ease; }
.tlive-x:hover { opacity: 1; color: var(--accent-rose, #fb7185); }
@media (prefers-reduced-motion: reduce) { .tlive { transition: opacity 0.2s ease; transform: none; } .tlive.is-out { transform: none; } .tlive.is-crit .tlive-ic { animation: none; } }
@media (max-width: 640px) { .torus-live { top: auto; bottom: 16px; right: 12px; left: 12px; width: auto; } }
