.tcsp-page{max-width:1180px;margin:0 auto;padding:32px 20px}.tcsp-page-hero{background:linear-gradient(135deg,#090817,#1c1240 58%,#7129ff);color:#fff;border-radius:28px;padding:36px;margin:20px 0}.tcsp-page-hero span,.tcsp-profile-hero span{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:#ffbadf;font-weight:800}.tcsp-page-hero h1,.tcsp-profile-hero h1{font-size:clamp(34px,6vw,72px);line-height:.95;margin:8px 0 12px}.tcsp-grid{display:grid;gap:20px}.tcsp-grid-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.tcsp-entity-card,.tcsp-radar-card,.tcsp-song-card,.tcsp-week-summary,.tcsp-episode-row{background:#fff;border:1px solid #e7e7ee;border-radius:22px;box-shadow:0 12px 32px rgba(12,12,25,.08);overflow:hidden}.tcsp-entity-card a{display:block;text-decoration:none;color:#111}.tcsp-entity-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#f3f2f8}.tcsp-entity-card h3,.tcsp-entity-card p{padding:0 16px}.tcsp-entity-card h3{margin:14px 0 6px}.tcsp-entity-card p{margin:0 0 16px;color:#686579}.tcsp-profile-hero{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:center;background:#090817;color:#fff;border-radius:30px;padding:28px;margin:24px 0}.tcsp-profile-hero img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:22px}.tcsp-content{font-size:18px;line-height:1.75}.tcsp-ranking ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}.tcsp-rank-row{display:grid;grid-template-columns:48px 72px 58px 1fr 70px 70px 48px;gap:12px;align-items:center;background:#fff;border:1px solid #ececf2;border-radius:16px;padding:10px}.tcsp-rank-row img{width:58px;height:58px;border-radius:12px;object-fit:cover}.tcsp-title small{display:block;color:#656276}.tcsp-play{width:42px;height:42px;border-radius:50%;border:0;background:#7c3cff;color:#fff;cursor:pointer}.tcsp-play span{display:block;margin-left:15px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid #fff}.tcsp-radar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.tcsp-radar-card{padding:14px}.tcsp-radar-card img{width:100%;aspect-ratio:1/1;border-radius:16px;object-fit:cover}.tcsp-song-card{display:flex;align-items:center;gap:12px;padding:12px;margin:10px 0}.tcsp-song-card img{width:72px;height:72px;border-radius:16px;object-fit:cover}.tcsp-video{position:relative;aspect-ratio:16/9;background:#000;border-radius:22px;overflow:hidden;margin:18px 0}.tcsp-video iframe{width:100%;height:100%;border:0}.tcsp-audio{width:100%;margin:14px 0}.tcsp-button{display:inline-block;background:#7c3cff;color:#fff!important;padding:10px 16px;border-radius:999px;text-decoration:none}.tcsp-list{display:grid;gap:16px}.tcsp-episode-row{display:grid;grid-template-columns:160px 1fr;gap:18px;padding:16px}.tcsp-episode-row img{width:160px;height:160px;object-fit:cover;border-radius:18px}.tcsp-empty{background:#fff7e6;border:1px solid #ffe2a6;border-radius:16px;padding:18px}@media(max-width:760px){.tcsp-profile-hero,.tcsp-episode-row{grid-template-columns:1fr}.tcsp-rank-row{grid-template-columns:38px 50px 50px 1fr 42px}.tcsp-score,.tcsp-weeks{display:none}}

/* V13.3 Frontend Bridge: public selectors and connected entity archives */
.tcsp-bridge-page .tcsp-page-hero{margin-bottom:22px}.tcsp-filterbar{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:22px;padding:18px;margin:0 auto 24px;box-shadow:0 14px 40px rgba(15,23,42,.07)}.tcsp-filterbar-main{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.tcsp-filterbar label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;letter-spacing:.02em;color:#475569;text-transform:uppercase}.tcsp-filterbar select,.tcsp-filterbar input[type="search"]{width:100%;height:42px;border:1px solid rgba(15,23,42,.16);border-radius:12px;background:#f8fafc;padding:0 12px;color:#0f172a;font-size:14px;text-transform:none;font-weight:600}.tcsp-filterbar select:focus,.tcsp-filterbar input[type="search"]:focus{outline:2px solid rgba(99,102,241,.22);border-color:#6366f1;background:#fff}.tcsp-filter-search{grid-column:span 2}.tcsp-filterbar-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px}.tcsp-button-light{background:#f1f5f9;color:#0f172a}.tcsp-alpha{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid rgba(15,23,42,.08);padding-top:14px;margin-top:14px}.tcsp-alpha a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:999px;background:#f8fafc;color:#334155;text-decoration:none;font-weight:800;font-size:12px}.tcsp-alpha a:hover,.tcsp-alpha a.is-active{background:#111827;color:#fff}.tcsp-results-head{display:flex;align-items:center;gap:6px;margin:4px auto 14px;color:#475569;font-size:14px}.tcsp-results-head strong{font-size:18px;color:#0f172a}.tcsp-pagination{display:flex;gap:8px;align-items:center;justify-content:center;margin:28px 0}.tcsp-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid rgba(15,23,42,.12);text-decoration:none;color:#0f172a;font-weight:800}.tcsp-pagination a.is-active,.tcsp-pagination a:hover{background:#111827;color:#fff}.tcsp-song-card a{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;flex:1}.tcsp-song-card small,.tcsp-entity-card small{display:block;color:#64748b;font-size:12px;margin-top:6px}.tcsp-radar-card a{text-decoration:none;color:inherit}.tcsp-empty{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:22px;padding:26px;margin:18px 0;color:#475569}.tcsp-empty h2{margin:0 0 8px;color:#0f172a}@media(max-width:980px){.tcsp-filterbar-main{grid-template-columns:repeat(2,minmax(140px,1fr))}.tcsp-filter-search{grid-column:span 2}}@media(max-width:640px){.tcsp-filterbar-main{grid-template-columns:1fr}.tcsp-filter-search{grid-column:span 1}.tcsp-filterbar-actions{justify-content:stretch}.tcsp-filterbar-actions .tcsp-button{flex:1;text-align:center}.tcsp-alpha{max-height:110px;overflow:auto}}

/* V13.4 - artist profile relation counters, intentionally minimal */
.tcsp-section-note{opacity:.72;margin-top:-.35rem;margin-bottom:1rem;font-size:.95rem}
.tcsp-artist-songs .tcsp-song-card{margin-bottom:.75rem}


/* V13.4.6 - surgical premium artist profile, album list, and YouTube inline player */
.tcsp-artist-single{max-width:1060px;padding-top:22px;padding-bottom:52px}
.tcsp-artist-single .tcsp-profile-hero.tcsp-artist-hero{grid-template-columns:180px minmax(0,1fr);gap:24px;border-radius:24px;padding:22px;background:linear-gradient(135deg,#070713 0%,#111329 58%,#2d1d61 100%);box-shadow:0 22px 60px rgba(7,7,19,.22)}
.tcsp-artist-single .tcsp-profile-hero h1{font-size:clamp(34px,4.8vw,54px);line-height:1.02;margin:8px 0 10px;letter-spacing:-.04em}
.tcsp-artist-single .tcsp-profile-hero p{max-width:680px;color:rgba(255,255,255,.78);margin:.35rem 0}
.tcsp-artist-single .tcsp-profile-hero img{border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.tcsp-artist-meta-line{font-weight:700;color:#ffbadf!important}
.tcsp-artist-single .tcsp-content,.tcsp-artist-single .tcsp-artist-discography,.tcsp-artist-single .tcsp-artist-songs,.tcsp-artist-single section:last-child{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:24px;padding:24px;margin:20px 0;box-shadow:0 12px 34px rgba(15,23,42,.06)}
.tcsp-artist-single h2{letter-spacing:-.03em;margin-top:0}.tcsp-section-note{color:#64748b;opacity:1}.tcsp-album-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.tcsp-album-mini{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid rgba(15,23,42,.10);border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.055)}.tcsp-album-mini a{display:grid;grid-template-columns:86px 1fr;gap:14px;align-items:center;padding:12px;text-decoration:none;color:#0f172a}.tcsp-album-mini img{width:86px;height:86px;aspect-ratio:1/1;object-fit:cover;border-radius:8px;background:#f1f5f9;box-shadow:0 8px 16px rgba(15,23,42,.10)}.tcsp-album-mini h3{margin:0 0 4px;font-size:16px;line-height:1.2}.tcsp-album-mini p{margin:0;color:#64748b;font-size:13px}.tcsp-album-mini small{color:#94a3b8;font-weight:700}.tcsp-song-card-premium{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border-radius:18px;border:1px solid rgba(15,23,42,.10);box-shadow:0 10px 26px rgba(15,23,42,.055);padding:12px 14px}.tcsp-song-card-premium .tcsp-song-main{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;align-items:center;text-decoration:none;color:#0f172a}.tcsp-song-card-premium img{width:64px;height:64px;border-radius:10px}.tcsp-song-card-premium h3{font-size:16px;letter-spacing:-.02em;margin:0}.tcsp-song-card-premium p{margin:4px 0 0;color:#64748b}.tcsp-play-premium{width:auto;min-width:118px;height:42px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 15px;border-radius:999px;background:linear-gradient(135deg,#121326,#6d36ff);box-shadow:0 12px 26px rgba(109,54,255,.24);font-weight:900;letter-spacing:-.01em;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.tcsp-play-premium:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(109,54,255,.34)}.tcsp-play-premium:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.tcsp-play-premium .tcsp-play-icon{display:block;margin:0;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid #fff}.tcsp-play-premium em{font-style:normal;color:#fff;font-size:13px}.tcsp-play-premium.is-playing{background:linear-gradient(135deg,#ff2d75,#7c3cff)}.tcsp-inline-player{grid-column:1/-1;width:100%}.tcsp-inline-video{margin:12px 0 2px;border-radius:16px;box-shadow:0 20px 44px rgba(15,23,42,.18)}.tcsp-rank-row .tcsp-inline-player,.tcsp-radar-card .tcsp-inline-player{grid-column:1/-1}.tcsp-rank-row .tcsp-play-premium{min-width:42px;width:42px;padding:0}.tcsp-rank-row .tcsp-play-premium em{display:none}@media(max-width:760px){.tcsp-artist-single .tcsp-profile-hero.tcsp-artist-hero{grid-template-columns:1fr}.tcsp-artist-single .tcsp-profile-hero img{max-width:190px}.tcsp-song-card-premium{grid-template-columns:1fr}.tcsp-play-premium{width:100%}.tcsp-album-list{grid-template-columns:1fr}}


/* V13.4.7 - surgical result card sizing and visible YouTube source disclosure */
.tcsp-results-grid--single{grid-template-columns:minmax(190px,230px);justify-content:start;align-items:start}
.tcsp-results-grid--single .tcsp-entity-card{max-width:230px;width:100%}
.tcsp-artist-card .tcsp-artist-badge{display:inline-flex;align-items:center;max-width:calc(100% - 32px);margin:0 16px 16px;padding:7px 10px;border:1px solid rgba(15,23,42,.10);border-radius:9px;background:#f8fafc;color:#475569;font-size:11px;font-weight:850;line-height:1.25;letter-spacing:.02em;text-transform:none;box-sizing:border-box}
.tcsp-song-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px;justify-self:end}
.tcsp-media-source-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:160px;padding:5px 8px;border-radius:8px;background:#f8fafc;border:1px solid rgba(15,23,42,.10);color:#64748b;font-size:10px;font-weight:850;line-height:1.1;white-space:nowrap}
.tcsp-media-disclaimer{margin:10px 0 0;color:#64748b;font-size:12px;line-height:1.45;background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:10px 12px}
.tcsp-media-disclaimer-section{margin:8px 0 16px}.tcsp-media-disclaimer-player{margin:10px 0 18px}.tcsp-inline-video .tcsp-media-disclaimer-inline{margin:0;border:0;border-radius:0;background:#0f172a;color:rgba(255,255,255,.76);font-size:11px;padding:9px 12px}
.tcsp-song-card-with-source{align-items:center}.tcsp-song-card-with-source .tcsp-inline-player{flex-basis:100%}
@media(max-width:760px){.tcsp-results-grid--single{grid-template-columns:minmax(180px,230px)}.tcsp-song-card-actions{width:100%;align-items:stretch}.tcsp-media-source-badge{max-width:none;width:100%}}

/* V13.5 Ranking Builder frontend */
.tcsp-ranking-builder .tcsp-rank-builder-row{grid-template-columns:48px 72px 58px minmax(0,1fr) 72px 78px minmax(92px,auto) minmax(42px,auto)}
.tcsp-ranking-builder .tcsp-rank-cover{display:block}.tcsp-ranking-builder .tcsp-title a{text-decoration:none;color:#111827}.tcsp-ranking-builder .tcsp-title small a{color:#64748b;text-decoration:none}.tcsp-ranking-builder .tcsp-title small a:hover,.tcsp-ranking-builder .tcsp-title a:hover{text-decoration:underline}.tcsp-peak,.tcsp-rank-badge{font-size:12px;color:#64748b;font-weight:800}.tcsp-rank-badge{display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:999px;padding:6px 9px;text-align:center}.tcsp-state-new,.tcsp-state-reentry{color:#7c3cff}.tcsp-state-up{color:#087f5b}.tcsp-state-down{color:#b42318}.tcsp-state-same{color:#64748b}@media(max-width:900px){.tcsp-ranking-builder .tcsp-rank-builder-row{grid-template-columns:38px 52px 50px minmax(0,1fr) 42px}.tcsp-ranking-builder .tcsp-peak,.tcsp-ranking-builder .tcsp-rank-badge{display:none}}

/* V13.6 Chart Engine: listener voting UI, scoped and non-invasive. */
.tcsp-vote-button{border:1px solid rgba(255,255,255,.22);background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04));color:inherit;border-radius:999px;padding:.58rem .9rem;font-weight:700;cursor:pointer;white-space:nowrap}
.tcsp-vote-button:hover{transform:translateY(-1px)}
.tcsp-vote-modal{position:fixed;inset:0;z-index:99999;background:rgba(5,8,16,.72);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px}
.tcsp-vote-modal[hidden]{display:none!important}
.tcsp-vote-box{width:min(440px,100%);background:#101522;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:22px;box-shadow:0 28px 90px rgba(0,0,0,.45);position:relative}
.tcsp-vote-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font-size:20px;line-height:1}
.tcsp-vote-box h3{margin:0 40px 8px 0;color:#fff}.tcsp-vote-target{margin:.25rem 0 1rem;color:rgba(255,255,255,.76)}
.tcsp-vote-box label{display:block;margin:.8rem 0;color:rgba(255,255,255,.82);font-weight:700}.tcsp-vote-box input[type=email]{display:block;width:100%;margin-top:.35rem;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:14px;padding:.85rem 1rem}
.tcsp-vote-consent{font-weight:500!important;line-height:1.35}.tcsp-vote-consent input{margin-right:.45rem}.tcsp-vote-legal{font-size:.82rem;line-height:1.45;color:rgba(255,255,255,.62)}
.tcsp-vote-submit{width:100%;border:0;border-radius:999px;background:#fff;color:#111827;padding:.9rem 1rem;font-weight:900;cursor:pointer}.tcsp-vote-submit:disabled{opacity:.6;cursor:wait}.tcsp-vote-message{min-height:1.3em;font-weight:700}.tcsp-vote-message.is-ok{color:#91f2b9}.tcsp-vote-message.is-error{color:#ffb4b4}
