/* Track Explorer — Light Theme, Premium UI, Verified Blue Badge */
.te-wrapper{max-width:1200px;margin:0 auto;padding:0 20px 60px}
.te-detail-page{padding-top:30px}

/* ---- ANIMATIONS ---- */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}

.te-animate{animation:fadeUp .5s ease both}
.te-animate-fast{animation:fadeUp .3s ease both}
.te-animate-scale{animation:scaleIn .4s ease both}
.te-stagger-1{animation-delay:0s}
.te-stagger-2{animation-delay:0.08s}
.te-stagger-3{animation-delay:0.16s}
.te-stagger-4{animation-delay:0.24s}
.te-stagger-5{animation-delay:0.32s}

/* ---- GLASS (slightly darker than bg #f0f0f2) ---- */
.glass{background:rgba(0,0,0,0.04);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(0,0,0,0.06);border-radius:16px;transition:all .3s ease}
.glass:hover{background:rgba(0,0,0,0.06);border-color:rgba(0,0,0,0.1);box-shadow:0 8px 32px rgba(0,0,0,0.04)}

/* ---- SEARCH — Unified Component ---- */
.te-search-wrap{position:relative;max-width:680px;margin:0 auto 30px}
.te-search-container{position:relative;background:rgba(255,255,255,0.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,0.08);border-radius:9999px;box-shadow:0 2px 12px rgba(0,0,0,0.06);transition:border-radius .18s ease,box-shadow .18s ease,border-color .18s ease}
.te-search-container.open{border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.04)}
.te-search-bar{display:flex;align-items:center;padding:12px 8px 12px 18px;gap:10px}
.te-search-icon{flex-shrink:0;opacity:.35;color:#000}
.te-search-input{flex:1;background:0 0;border:none;outline:0;color:#111;font-size:1rem;font-family:inherit;line-height:1.5;min-width:0}
.te-search-input::placeholder{color:#aaa}
.te-search-btn{background:#111;color:#fff;border:none;padding:10px 24px;border-radius:9999px;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}
.te-search-btn:hover{background:#333}
.te-search-btn:disabled{opacity:.4;cursor:not-allowed}

/* ---- DROPDOWN (inside same container) ---- */
.te-suggestions{display:none;border-top:1px solid rgba(0,0,0,0.06);max-height:420px;overflow-y:auto;overflow-x:hidden;padding:6px 0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.12) transparent}
.te-suggestions::-webkit-scrollbar{width:6px}
.te-suggestions::-webkit-scrollbar-track{background:transparent}
.te-suggestions::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12);border-radius:3px}
.te-suggestions.active{display:block;animation:teDropIn .18s ease both}
@keyframes teDropIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

.te-suggestion-item{display:flex;align-items:center;gap:12px;padding:8px 16px;cursor:pointer;transition:background .1s;margin:0 4px;border-radius:10px}
.te-suggestion-item:hover,.te-suggestion-item.active{background:rgba(0,0,0,0.05)}
.te-suggestion-img{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#e5e5e5}
.te-suggestion-img-round{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#e5e5e5}
.te-suggestion-info{flex:1;min-width:0}
.te-suggestion-name{color:#111;font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.te-suggestion-meta{color:#888;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.te-suggestion-type{color:#aaa;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;padding:3px 8px;background:rgba(0,0,0,0.04);border-radius:4px}

/* ---- DROPDOWN STATES ---- */
.te-suggestion-empty{padding:28px 16px;text-align:center;color:#999;font-size:.88rem}
.te-suggestion-loading{padding:12px 16px}
.te-skel-row{display:flex;align-items:center;gap:12px;padding:8px 0;margin:0 16px}
.te-skel-row+.te-skel-row{border-top:1px solid rgba(0,0,0,0.03)}
.te-skel-thumb{width:40px;height:40px;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 25%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;flex-shrink:0}
.te-skel-lines{flex:1;display:flex;flex-direction:column;gap:6px}
.te-skel-line{height:10px;border-radius:5px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 25%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.te-skel-line.w60{width:60%}
.te-skel-line.w40{width:40%}

/* ---- TRENDING (Default State) ---- */
.te-trending{padding:10px 0 40px;animation:fadeUp .5s ease both}
.te-trending-section{margin-bottom:24px}
.te-trending-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.te-trending-card{padding:24px 20px;cursor:pointer;text-align:center;transition:all .3s ease}
.te-trending-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.08)}
.te-trending-icon{margin-bottom:14px;opacity:.7}
.te-trending-label{font-size:.95rem;font-weight:700;color:#111;margin-bottom:4px}
.te-trending-sub{font-size:.8rem;color:#888}
.te-search-query{padding:10px 0 0}
.te-search-query h2{font-size:1.2rem}

/* ---- LOADING ---- */
.te-loading{text-align:center;padding:60px 20px;color:#888}
.te-spinner{width:40px;height:40px;border:3px solid rgba(0,0,0,0.06);border-top-color:#111;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}

/* ---- NO RESULTS / ERROR ---- */
.te-no-results{text-align:center;padding:60px 20px;animation:fadeIn .3s ease}
.te-no-results svg{opacity:.25;margin-bottom:16px}
.te-no-results h3{color:#111;font-size:1.3rem;margin-bottom:8px}
.te-no-results p{color:#888;max-width:400px;margin:0 auto}
.te-retry-btn{background:rgba(0,0,0,0.05);color:#111;border:1px solid rgba(0,0,0,0.1);padding:10px 28px;border-radius:50px;font-size:.9rem;cursor:pointer;margin-top:16px;transition:all .2s}
.te-retry-btn:hover{background:rgba(0,0,0,0.08)}

/* ---- RESULTS GRID ---- */
.te-results{padding:10px 0}
.te-section-title{font-size:1.3rem;font-weight:700;margin-bottom:16px;color:#111}
.te-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:32px}
.te-artist-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.te-album-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.te-artist-grid-sm{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}

.te-result-card{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.05);border-radius:12px;padding:16px;text-decoration:none;color:#111;transition:all .3s ease;cursor:pointer;display:block}
.te-result-card:hover{background:rgba(0,0,0,0.06);border-color:rgba(0,0,0,0.1);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.06)}
.te-result-img{width:100%;aspect-ratio:1;border-radius:8px;object-fit:cover;margin-bottom:12px;border:1px solid rgba(0,0,0,0.04)}
.te-result-img-round{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;margin-bottom:12px;border:1px solid rgba(0,0,0,0.04)}
.te-result-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.te-result-meta{color:#888;font-size:.8rem;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- SKELETON ---- */
.te-skel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.te-skel-card{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.03);border-radius:12px;padding:16px}
.te-skel-img{aspect-ratio:1;border-radius:8px;background:linear-gradient(90deg,rgba(0,0,0,0.03) 25%,rgba(0,0,0,0.07) 50%,rgba(0,0,0,0.03) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin-bottom:12px}
.te-skel-line{height:12px;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.03) 25%,rgba(0,0,0,0.07) 50%,rgba(0,0,0,0.03) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin-bottom:8px}
.te-skel-line.w-70{width:70%}
.te-skel-line.w-50{width:50%}

/* ---- HERO CARD ---- */
.te-hero-card{display:flex;gap:30px;padding:30px;margin-bottom:30px;align-items:flex-start}
.te-artist-hero{align-items:center}
.te-hero-artwork{flex-shrink:0}
.te-artwork-lg{width:220px;height:220px;border-radius:12px;object-fit:cover;box-shadow:0 8px 40px rgba(0,0,0,0.06);transition:transform .4s ease,box-shadow .4s ease;border:1px solid rgba(0,0,0,0.04)}
.te-artwork-lg:hover{transform:scale(1.03);box-shadow:0 12px 48px rgba(0,0,0,0.1)}
.te-artist-img-lg{width:200px;height:200px;border-radius:50%;object-fit:cover;box-shadow:0 8px 40px rgba(0,0,0,0.06);transition:transform .4s ease;border:1px solid rgba(0,0,0,0.04)}
.te-artist-img-lg:hover{transform:scale(1.05)}
.te-hero-info{flex:1;min-width:0}
.te-track-title{font-size:1.8rem;font-weight:800;margin:0 0 8px;line-height:1.2;color:#111}
.te-artist-links{font-size:1.1rem;margin-bottom:12px}
.te-artist-link{color:#666;text-decoration:none;transition:color .2s}
.te-artist-link:hover{color:#000}
.te-title-with-badge{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.te-verified-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:9999px;border:1px solid #D1D5DB;background:#F3F4F6;color:#111827;box-shadow:0 1px 3px rgba(0,0,0,0.08);transition:all 150ms ease;flex:0 0 auto;line-height:0;vertical-align:middle}
.te-verified-badge:hover{transform:scale(1.05)}
.te-verified-badge svg{width:10px;height:10px;display:block;fill:currentColor}
.te-meta-row{color:#666;font-size:.95rem;margin-bottom:6px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.te-sep{color:#ccc;margin:0 4px}
.te-duration{color:#666}
.te-explicit-badge{background:rgba(0,0,0,0.06);color:#555;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:3px;letter-spacing:.5px}
.te-hero-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap}
.te-spotify-btn{display:inline-flex;align-items:center;gap:8px;background:#111;color:#fff;padding:12px 28px;border-radius:50px;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .25s ease}
.te-spotify-btn:hover{background:#333;transform:scale(1.04)}
.te-link-btn{display:inline-flex;align-items:center;gap:8px;background:rgba(0,0,0,0.04);color:#111;padding:12px 28px;border-radius:50px;font-size:.9rem;font-weight:600;text-decoration:none;border:1px solid rgba(0,0,0,0.08);transition:all .25s ease}
.te-link-btn:hover{background:rgba(0,0,0,0.07)}

/* ---- DETAIL LAYOUT ---- */
.te-detail-layout{display:grid;grid-template-columns:1fr 280px;gap:30px}
.te-detail-main{min-width:0}
.te-section-card{padding:24px;margin-bottom:24px}
.te-section-card h2{margin-top:0}

/* ---- DETAIL TABLE ---- */
.te-detail-table{width:100%;border-collapse:collapse}
.te-detail-table th,.te-detail-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(0,0,0,0.05)}
.te-detail-table th{color:#888;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.te-detail-table tr:last-child td{border-bottom:none}
.te-detail-table .te-label{color:#888;font-size:.85rem;width:180px;padding-left:0}
.te-detail-table .te-value{color:#111;font-size:.9rem}
.te-detail-table .te-value a{color:#111;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0.12)}
.te-detail-table .te-value a:hover{border-bottom-color:#111}
.te-mono{font-family:'SF Mono','Fira Code','Courier New',monospace;font-size:.82rem!important;color:#555!important;word-break:break-all}

/* ---- ARTIST CARD INLINE ---- */
.te-artist-card-inline{display:flex;gap:20px;align-items:flex-start}
.te-artist-img-round{width:100px;height:100px;border-radius:50%;object-fit:cover;transition:transform .3s;border:1px solid rgba(0,0,0,0.04)}
.te-artist-img-round:hover{transform:scale(1.05)}
.te-artist-card-info{flex:1}
.te-artist-card-info h3{margin:0 0 8px;font-size:1.2rem}
.te-artist-card-info h3 a{color:#111;text-decoration:none}
.te-artist-card-info h3 a:hover{color:#000;text-decoration:underline}
.te-artist-card-info p{color:#666;margin:0 0 4px;font-size:.9rem}

/* ---- GENRE TAGS ---- */
.te-genre-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.te-genre-tag{background:rgba(0,0,0,0.04);color:#666;padding:4px 12px;border-radius:50px;font-size:.78rem;border:1px solid rgba(0,0,0,0.07)}

/* ---- TWO-COLUMN INFO GRID ---- */
.te-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.te-info-item{display:flex;flex-direction:column;padding:14px 16px;background:rgba(0,0,0,0.03);border-radius:10px;border:1px solid rgba(0,0,0,0.04);transition:background .2s,border-color .2s}
.te-info-item:hover{background:rgba(0,0,0,0.05);border-color:rgba(0,0,0,0.08)}
.te-info-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.te-info-label svg{width:14px;height:14px;opacity:.45;flex-shrink:0}
.te-info-value{font-size:.9rem;color:#111;font-weight:500;word-break:break-all}
.te-info-value a{color:#111;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0.12)}
.te-info-value a:hover{border-bottom-color:#111}
.te-notavail{color:#bbb;font-style:italic}
.te-player{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.07);border-radius:12px;padding:16px;margin:16px 0}
.te-player audio{width:100%;outline:none;border-radius:8px}
.te-player iframe{border-radius:8px}
.te-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.3px}
.te-badge-explicit{background:rgba(0,0,0,0.06);color:#555}
.te-badge-pop{background:rgba(0,0,0,0.06);color:#333}
.te-copyright-line{padding:8px 12px;background:rgba(0,0,0,0.03);border-radius:8px;margin-bottom:6px;font-size:.85rem;color:#666;border:1px solid rgba(0,0,0,0.04)}
@media(max-width:600px){.te-info-grid{grid-template-columns:1fr}}

/* ---- TRACKLIST ---- */
.te-tracklist{font-size:.9rem}
.te-tracklist .te-num{color:#bbb;width:40px}
.te-tracklist .te-track-row{cursor:pointer;transition:background .15s}
.te-tracklist .te-track-row:hover{background:rgba(0,0,0,0.03)}
.te-track-name-cell{display:flex;align-items:center;gap:10px}
.te-mini-art{width:36px;height:36px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid rgba(0,0,0,0.04)}
.te-track-link{color:#111;text-decoration:none;font-weight:600}
.te-track-link:hover{color:#000;text-decoration:underline}
.te-track-artist{color:#888;font-size:.8rem;margin-top:2px}
.te-duration-cell{color:#666;white-space:nowrap;width:70px}
.te-pop-cell{color:#888;white-space:nowrap;width:60px;text-align:right}
.te-explicit-badge-sm{background:rgba(0,0,0,0.06);color:#666;font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:3px;margin-left:6px;vertical-align:middle}

/* ---- ALBUM CARDS ---- */
.te-album-card-link{text-decoration:none;color:#111}
.te-album-card{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.05);border-radius:12px;padding:12px;transition:all .3s ease}
.te-album-card:hover{background:rgba(0,0,0,0.06);border-color:rgba(0,0,0,0.1);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.05)}
.te-album-art{width:100%;aspect-ratio:1;border-radius:8px;object-fit:cover;margin-bottom:10px;border:1px solid rgba(0,0,0,0.04)}
.te-album-card-info{min-width:0}
.te-album-card-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.te-album-card-meta{font-size:.75rem;color:#888;margin-top:2px}

/* ---- RELATED ARTIST ---- */
.te-related-artist{text-decoration:none;color:#111;text-align:center;padding:12px;border-radius:12px;transition:all .3s ease;display:block}
.te-related-artist:hover{background:rgba(0,0,0,0.04);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.04)}
.te-related-img{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;margin-bottom:8px;border:1px solid rgba(0,0,0,0.04)}
.te-related-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (prefers-color-scheme: dark){
  .te-verified-badge{background:#1F2937;border-color:#374151;color:#FFFFFF}
}

/* ---- SIDEBAR ---- */
.te-sidebar-card{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.05);border-radius:16px;padding:20px;margin-bottom:20px}
.te-sidebar-card h3{font-size:1rem;font-weight:700;margin:0 0 14px;color:#111}
.te-sidebar-card ul{list-style:none;padding:0;margin:0}
.te-sidebar-card li{margin-bottom:10px}
.te-sidebar-card li:last-child{margin-bottom:0}
.te-sidebar-card a{color:#666;text-decoration:none;font-size:.88rem;transition:color .2s}
.te-sidebar-card a:hover{color:#000}

.te-recent{padding:20px 0}

/* ---- RESPONSIVE ---- */
@media(max-width:1024px){
  .te-detail-layout{grid-template-columns:1fr 240px}
}
@media(max-width:768px){
  .te-hero-card{flex-direction:column;align-items:center;text-align:center;padding:20px}
  .te-hero-info{text-align:center}
  .te-artwork-lg,.te-artist-img-lg{width:180px;height:180px}
  .te-detail-layout{grid-template-columns:1fr}
  .te-artist-card-inline{flex-direction:column;align-items:center;text-align:center}
  .te-genre-tags{justify-content:center}
  .te-hero-actions{justify-content:center}
  .te-grid{grid-template-columns:repeat(2,1fr)}
  .te-artist-grid,.te-album-grid,.te-artist-grid-sm{grid-template-columns:repeat(2,1fr)}
  .te-trending-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .te-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .te-search-bar{padding:10px 6px 10px 14px}
  .te-search-btn{padding:8px 16px;font-size:.82rem}
  .te-track-title{font-size:1.3rem}
  .te-meta-row{font-size:.85rem}
  .te-section-card{padding:16px}
  .te-detail-table .te-label{width:120px;font-size:.78rem}
  .te-detail-table .te-value{font-size:.82rem}
  .te-trending-grid{grid-template-columns:1fr 1fr;gap:10px}
  .te-trending-card{padding:16px 12px}
  .te-suggestion-item{padding:8px 12px}
  .te-suggestion-img,.te-suggestion-img-round{width:36px;height:36px}
}
