/* LINGSCAN 列表行（G1）：40px 封面 / 当前行琥珀竖线 / 播放中三竖线均衡器 / 行尾 … 菜单 */
.ls-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.ls-row {
  position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr) 32px;
  align-items: center; gap: 12px; padding: 8px 8px 8px 12px; border-radius: 8px;
  color: var(--text, #141514);
}
.ls-row::before {
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 2px;
  background: var(--brass, #e8862a); transform: scaleY(0); transition: transform 160ms ease;
}
.ls-row:hover { background: var(--line, rgba(29, 31, 30, 0.06)); }
.ls-row.is-current::before { transform: scaleY(1); }
.ls-row.is-current .ls-row-title { color: var(--brass-hover, #cf7420); }

.ls-row-cover {
  all: unset; box-sizing: border-box; position: relative; width: 40px; height: 40px; border-radius: 6px;
  background: var(--ink0-up, #2b2d2c) center / cover no-repeat; cursor: pointer; overflow: hidden;
  display: grid; place-items: center; color: #f3f2ee; font-size: 14px;
}
.ls-row-cover:focus-visible, .ls-row-more:focus-visible { outline: 2px solid var(--brass, #e8862a); outline-offset: 2px; }
.ls-row-cover .ls-ico { opacity: 0; transition: opacity 120ms; text-shadow: 0 0 6px rgba(0, 0, 0, 0.6); }
.ls-row:hover .ls-ico, .ls-row-cover:focus-visible .ls-ico { opacity: 1; }
.ls-row.is-playing .ls-ico { display: none; }
.ls-row:not(.is-current) .ls-eq { display: none; }

/* 三竖线均衡器：播放中跳动，暂停时静止 */
.ls-eq {
  position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; gap: 3px;
  padding: 11px 0; background: rgba(29, 31, 30, 0.55);
}
.ls-eq i {
  display: block; width: 3px; height: 100%; background: var(--brass, #e8862a); border-radius: 1px;
  transform-origin: bottom; transform: scaleY(0.35);
}
.ls-row.is-playing .ls-eq i { animation: ls-eq 900ms ease-in-out infinite; }
.ls-row.is-playing .ls-eq i:nth-child(2) { animation-delay: -300ms; }
.ls-row.is-playing .ls-eq i:nth-child(3) { animation-delay: -600ms; }
@keyframes ls-eq { 0%, 100% { transform: scaleY(0.3); } 50% { transform: scaleY(1); } }

.ls-row-main { min-width: 0; }
.ls-row-title { font-size: 14px; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-row-sub { font-size: 12px; color: var(--text-2, #4a4c4a); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ls-row-more {
  all: unset; box-sizing: border-box; width: 32px; height: 32px; display: grid; place-items: center;
  border-radius: 50%; cursor: pointer; color: var(--text-2, #4a4c4a); font-size: 18px; line-height: 1; letter-spacing: 1px;
  opacity: 0; transition: opacity 120ms, background 120ms;
}
.ls-row:hover .ls-row-more, .ls-row.is-current .ls-row-more, .ls-row-more[aria-expanded="true"], .ls-row-more:focus-visible { opacity: 1; }
.ls-row-more:hover { background: var(--line-strong, rgba(29, 31, 30, 0.12)); color: var(--text, #141514); }
@media (hover: none) { .ls-row-more { opacity: 1; } }

.ls-row-menu {
  position: absolute; right: 8px; top: calc(100% - 4px); z-index: 60; min-width: 132px; padding: 4px;
  background: var(--ink0, #1d1f1e); color: #f3f2ee; border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
}
.ls-row-menu[hidden] { display: none; }
.ls-row-menu button, .ls-row-menu a {
  all: unset; box-sizing: border-box; display: block; width: 100%; padding: 8px 12px; border-radius: 6px;
  font-size: 13px; cursor: pointer; color: inherit;
}
.ls-row-menu button:hover, .ls-row-menu a:hover, .ls-row-menu [role="menuitem"]:focus-visible { background: rgba(255, 255, 255, 0.1); outline: none; }
.ls-row-menu .is-danger { color: #ff8a7a; }
@media (prefers-reduced-motion: reduce) {
  .ls-row.is-playing .ls-eq i { animation: none; transform: scaleY(0.7); }
  .ls-row::before { transition: none; }
}
