/* Source-backed content cards share the workspace's light and dark tokens. */
.ts-library-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 20px;padding:0 0 18px;border-bottom:1px solid var(--border)}
.ts-library-summary-main{display:flex;align-items:baseline;gap:8px}
.ts-library-count{font-size:22px;font-weight:700;letter-spacing:-.035em;color:var(--ink)}
.ts-library-count-label{font-size:12px;font-weight:600;color:var(--muted)}
.ts-library-summary-note{max-width:380px;margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.ts-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.ts-source-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 3px 12px #24201c08}
.ts-source-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:17px 17px 0}
.ts-source-identity{display:flex;align-items:center;gap:10px;min-width:0}
.ts-source-avatar{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--subtle);color:var(--accent);font-size:14px;font-weight:700}
.ts-source-identity-copy{display:grid;min-width:0;gap:3px}
.ts-source-author{overflow:hidden;color:var(--ink);font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ts-source-date{overflow:hidden;color:var(--muted);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ts-source-badge{flex:none;max-width:40%;overflow:hidden;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--subtle);color:var(--muted);font-size:10px;font-weight:650;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.ts-source-card-copy{display:flex;min-height:132px;flex-direction:column;gap:12px;margin:16px 17px 0;padding:16px;border-radius:10px;background:var(--subtle)}
.ts-source-format{color:var(--accent);font-size:10px;font-weight:700;line-height:1.3;text-transform:capitalize}
.ts-source-caption{display:-webkit-box;overflow:hidden;margin:0;color:var(--ink);font-size:13px;font-weight:500;line-height:1.55;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:5}
.ts-source-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 17px 0;padding:14px 0 0;border-top:1px solid var(--border)}
.ts-source-metric{display:grid;gap:4px;min-width:0}
.ts-source-metric-value{overflow:hidden;color:var(--ink);font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.ts-source-metric-label{color:var(--muted);font-size:10px;line-height:1.3}
.ts-source-details{margin:13px 17px 15px;color:var(--accent);font-size:11px;font-weight:650;line-height:1.4}
.ts-source-details summary{width:max-content;max-width:100%;cursor:pointer}
.ts-source-full-caption{margin:12px 0 0;color:var(--ink);font-size:12px;font-weight:400;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}
.ts-source-player-area{margin:14px 17px 0}
.ts-source-play{min-height:34px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);font-size:11px;font-weight:650}
.ts-source-play:not(:disabled):hover{border-color:var(--accent)}
.ts-source-player-area iframe{display:block;width:100%;min-height:340px;border:0;border-radius:10px;background:var(--subtle)}
.ts-source-player-note{margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.ts-library-pagination{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:24px}
.ts-library-page-label{color:var(--muted);font-size:12px}
.ts-library-page-button{min-height:36px;padding:8px 13px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600}
.ts-library-page-button:not(:disabled):hover{border-color:var(--accent)}
@media(max-width:1050px){.ts-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ts-library-summary{align-items:flex-start;flex-direction:column;gap:8px}.ts-source-grid{grid-template-columns:1fr}.ts-source-card-copy{min-height:0}.ts-library-pagination{justify-content:space-between}}
.ts-source-image-area:empty{display:none}
.ts-source-image-area{overflow:hidden;background:#e8dfd5;aspect-ratio:4/3}
.ts-source-image-area img{display:block;width:100%;height:100%;object-fit:cover}
.ts-source-metadata{overflow:auto;max-height:22rem;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem}
.ts-source-details span{white-space:pre-wrap;overflow-wrap:anywhere}
