/* 公開曲カード(紹介ページ・ライブラリで共通) */
.tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.tcard { display: flex; flex-direction: column; min-width: 0; }
.tc-art { position: relative; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--c) 38%, #140b07), #0d0705 70%); border: 1px solid var(--line-2); }
.tc-art::after { content: ""; position: absolute; inset: 0; border-radius: 16px; background: linear-gradient(180deg, transparent 50%, rgba(10, 5, 3, .55)); pointer-events: none; }
.tc-bars { position: absolute; left: 10px; right: 10px; bottom: 10px; top: 14px; display: flex; align-items: flex-end; gap: 3px; z-index: 1; }
.tc-bars i { flex: 1; background: var(--c); opacity: .85; border-radius: 3px 3px 1px 1px; min-width: 2px; }
.play-btn { position: absolute; z-index: 2; right: 12px; top: 12px; width: 46px; height: 46px; border-radius: 50%; border: 0; cursor: pointer; background: linear-gradient(135deg, var(--ember), var(--flame)); color: #1c0b02; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(255, 90, 0, .45); transition: transform .12s; }
.play-btn:hover { transform: scale(1.07); }
.play-btn:disabled { opacity: .6; }
.play-btn .ic-stop { display: none; }
.play-btn.is-playing { background: var(--cream); }
.play-btn.is-playing .ic-play { display: none; }
.play-btn.is-playing .ic-stop { display: block; }
.tc-body { padding: 10px 2px 0; display: flex; flex-direction: column; gap: 4px; }
.tc-title { font-size: 16px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tc-by { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--muted); }
.tc-by span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-meta { font-size: 12px; color: var(--muted); }
.tc-prog { height: 3px; background: var(--line); border-radius: 3px; overflow: hidden; margin-top: 4px; }
.tc-prog i { display: block; height: 100%; width: 0; background: var(--flame); }
.tc-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
