@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#173044;--muted:#71818a;--teal:#097f78;--cream:#f7f7f2;--rule:#e4e8e6}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}.shell{max-width:1260px;margin:auto;padding:0 44px}.mast{height:95px;display:flex;align-items:center;gap:65px;border-bottom:1px solid var(--rule)}.brand{font-family:Manrope,sans-serif;display:flex;align-items:center;gap:10px;font-size:27px;font-weight:800;letter-spacing:-1.5px;white-space:nowrap}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#91ddc9;font-size:31px}.dot{color:#0e9b91}nav{display:flex;gap:31px;align-items:center;flex:1}nav a{font-size:13px;color:#63747d;font-weight:700}nav a:hover,nav a.selected{color:var(--ink)}.live{font-size:11px;color:#72838b;white-space:nowrap}.pulse{display:inline-block;width:7px;height:7px;background:#4dab89;border-radius:50%;margin-right:6px}.hero{position:relative;overflow:hidden;min-height:396px;padding:68px 58px;margin-top:32px;background:#102d3d;border-radius:10px;color:white}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.2px;color:#1c827b}.hero .eyebrow{color:#83cbbd}.eyebrow-dash{padding:0 7px;opacity:.55}.hero h1{position:relative;z-index:2;font-family:Manrope,sans-serif;font-size:clamp(39px,5vw,65px);letter-spacing:-3.5px;line-height:1.09;margin:22px 0}.hero h1 em{font-style:normal;color:#8bd9c4}.hero p{position:relative;z-index:2;max-width:430px;line-height:1.7;font-size:14px;color:#bdd0d1}.hero-decor{position:absolute;width:410px;height:410px;right:2%;top:-5px}.orbit{position:absolute;border:1px solid rgba(127,219,200,.22);border-radius:50%;inset:0}.orbit.b{inset:47px}.orbit.c{inset:94px}.disc{position:absolute;inset:139px;background:#8bd9c4;border-radius:50%;display:grid;place-items:center;color:#102d3d;font-size:70px;font-weight:800;transform:rotate(-20deg);box-shadow:0 0 0 18px #0f3946}.disc span{font-size:12px;position:absolute;bottom:8px}.chart-head{display:flex;justify-content:space-between;align-items:end;padding-top:57px;padding-bottom:30px}.chart-head h2,.history h2{font-family:Manrope;font-size:40px;letter-spacing:-2px;line-height:1.2;margin:9px 0 8px}.chart-head p,.history p{margin:0;font-size:13px;color:var(--muted)}.accent-star{font-size:22px;color:#0f938a;vertical-align:top;margin-left:10px}.edition{font-size:11px;font-weight:800;letter-spacing:1.5px;color:#61717b}.edition span{color:#b7c0c3;margin:0 7px}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:19px}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tabs a{padding:11px 17px;font-size:12px;color:#63757e;font-weight:700;border-radius:5px;white-space:nowrap}.tabs a.active{background:#143243;color:white}.tabs a:hover:not(.active){background:#f3f6f5}.search{display:flex;width:280px;max-width:100%;border:1px solid var(--rule);border-radius:5px}.search input{border:0;outline:0;flex:1;padding:12px;min-width:0;font-family:inherit;font-size:12px;background:transparent}.search button{border:0;background:transparent;font-size:23px;padding:0 13px;cursor:pointer;color:#70828a}.list-head{display:grid;grid-template-columns:1fr 130px;padding:15px 25px;border-bottom:2px solid var(--ink);font-size:10px;font-weight:800;letter-spacing:1.4px;color:#789}.list-head span:last-child{text-align:right}.podcast-row{display:flex;gap:21px;align-items:center;padding:15px 22px;border-bottom:1px solid var(--rule);transition:background .15s}.podcast-row:hover{background:#f7faf8}.rank{width:34px;text-align:center;font:800 20px Manrope,sans-serif}.cover-wrap{width:59px;height:59px;background:#e0e7e5;border-radius:7px;overflow:hidden;flex:none}.cover{width:100%;height:100%;object-fit:cover}.show-meta{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}.show-meta strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.show-meta>span{font-size:12px;color:#8a969c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move{min-width:72px;text-align:right;font-weight:800;font-size:12px}.is-up{color:#098b74}.is-down{color:#c5655c}.is-even{color:#99a1a4}.is-new{color:#64869f}.next{margin-left:10px;color:#889ca3}.empty{padding:55px 20px;text-align:center;background:#f8faf9}.empty p{color:#71818a;font-size:13px}.footer-note{margin-top:75px;border-top:1px solid var(--rule);padding:25px 0 35px}.footer-note p{max-width:880px;line-height:1.7;color:#7b8a91;font-size:12px}footer{border-top:1px solid var(--rule);display:flex;gap:20px;justify-content:space-between;padding:28px 0 38px;color:#87939a;font-size:12px}footer strong{font-family:Manrope;font-size:17px;color:var(--ink)}.back{margin:32px 0;color:#438e8a;font-weight:800;font-size:12px;letter-spacing:1px}.show-hero{background:#f3f8f6;border-radius:10px;display:flex;align-items:center;gap:40px;padding:42px}.show-cover{width:200px;height:200px;object-fit:cover;border-radius:12px;background:#d8e7e2}.show-hero h1{font:800 39px Manrope;margin:13px 0}.show-hero p{color:#63757e}.genre{color:#0b837b;font-size:12px;margin:20px 0}.visit{display:inline-block;background:#113244;color:white;border-radius:5px;padding:12px 17px;font-size:12px;font-weight:700}.history{margin:70px 0}.chartbox{height:350px;margin:25px 0;border:1px solid var(--rule);border-radius:9px;padding:20px}.chart-caption{font-size:11px!important}@media(max-width:850px){.shell{padding:0 20px}.mast{gap:20px}.live{display:none}.hero{padding:45px 28px;min-height:335px}.hero-decor{right:-220px;opacity:.37}.hero h1{letter-spacing:-2px}.toolbar{align-items:stretch;flex-direction:column}.search{width:100%}.chart-head h2{font-size:33px}}@media(max-width:550px){.mast{height:72px}nav{gap:16px}nav a{font-size:11px}nav a:last-child{display:none}.brand{font-size:22px}.brand-mark{width:31px;height:31px;font-size:25px}.hero{margin-top:18px}.hero h1{font-size:40px}.hero p{max-width:270px}.chart-head{padding-top:37px}.edition{display:none}.tabs a{padding:10px;font-size:11px}.podcast-row{padding:12px 4px;gap:11px}.rank{font-size:16px;width:25px}.cover-wrap{width:47px;height:47px}.move{min-width:43px;font-size:11px}.next{display:none}.show-meta strong{font-size:12px}.list-head{padding:12px 4px}.show-hero{flex-direction:column;align-items:start;padding:25px}.show-cover{width:145px;height:145px}.show-hero h1{font-size:28px}footer{flex-wrap:wrap}}

/* Native-feeling, clearly identified display ad positions. Unconfigured placements render nothing. */
.advertisement{margin:28px auto 6px;padding:13px 16px 17px;border:1px solid #edf0ef;border-radius:8px;background:#fcfdfc;overflow:hidden;text-align:center;max-width:970px;min-height:110px}
.ad-label{font-size:9px;font-weight:700;letter-spacing:1.6px;color:#96a3a6;margin-bottom:11px}
.ad-bottom{margin-top:34px;margin-bottom:4px}
.ad-show{margin:0 auto 44px}
@media(max-width:550px){.advertisement{margin:19px 0 0;padding:10px 8px 13px;border-radius:6px;min-height:80px}.ad-bottom{margin-top:25px}.ad-show{margin-bottom:30px}}


/* Desktop: hero and the 300x250 ad are on the SAME ROW.
   Keep desktop sizing below hero height. Do not reserve ad space on mobile. */
.hero-with-ad{display:flex;flex-direction:row;align-items:stretch;gap:18px;margin-top:32px;width:100%}
.hero-with-ad>.hero{margin-top:0;flex:1 1 0;min-width:0;min-height:396px;padding:58px 36px}
.hero-with-ad>.hero .hero-decor{right:-115px;opacity:.65}
.hero-with-ad>.ad-hero-side{display:flex;flex:0 0 326px;width:326px;height:auto;min-height:396px;max-width:326px;margin:0;padding:16px 12px;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:#fcfdfc}
.hero-with-ad>.ad-hero-side .ad-label{margin:0}
.hero-with-ad>.ad-hero-side .adsbygoogle{display:inline-block;width:300px;height:250px;flex:none}
@media(max-width:900px){
 .hero-with-ad{display:block;margin-top:32px}
 .hero-with-ad>.hero{min-height:335px;padding:45px 28px}
 .hero-with-ad>.ad-hero-side{display:none!important}
 .hero-with-ad>.hero .hero-decor{right:-220px;opacity:.37}
}
@media(max-width:550px){.hero-with-ad{margin-top:18px}.hero-with-ad>.hero{min-height:335px}}

/* MVP 1.1: compact, read-only per-source freshness. Never interferes with the hero ad. */
.source-status{margin-top:20px;border:1px solid var(--rule);border-radius:8px;padding:13px 18px;background:#fbfcfb;display:flex;align-items:baseline;gap:23px;flex-wrap:wrap}
.source-status-title{font-size:10px;letter-spacing:1.1px;font-weight:800;color:#6c8189;white-space:nowrap}
.source-status-items{display:flex;flex-wrap:wrap;gap:12px 26px;flex:1}
.source-status-item{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#5c737d}
.source-status-item strong{font-size:12px;color:var(--ink)}
.source-status-audit{font-size:10px;color:#7b8c94}
@media(max-width:650px){.source-status{padding:12px;gap:10px}.source-status-items{gap:10px}}

/* MVP 1.1 category navigation: separate from daily movement tabs. */
.category-picker{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--rule)}
.category-link{display:inline-block;border:1px solid #dce7e3;border-radius:6px;padding:10px 15px;font-size:12px;font-weight:700;color:#58727d;background:#fff;transition:background .15s}
.category-link:hover{background:#f1f7f5}
.category-link.selected{background:#143243;border-color:#143243;color:#fff}
@media(max-width:550px){.category-picker{gap:6px;margin-bottom:15px}.category-link{font-size:11px;padding:9px 11px}}

/* Async chart region: visual state without a full-page jump. */
#chart-browser[aria-busy="true"]{opacity:.7;transition:opacity .12s}

/* MVP 1.1: podcast history category and time-range controls. */
.history-category-picker{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 18px}
.history-cat{display:inline-block;padding:9px 13px;border:1px solid #dce7e3;border-radius:6px;font-size:12px;font-weight:700;color:#58727d;background:#fff}
.history-cat:hover{background:#f1f7f5}
.history-cat.selected{background:#143243;border-color:#143243;color:#fff}
.history-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:12px 0;color:#58727d;font-size:12px}
.history-controls strong{color:var(--ink)}
.history-ranges{display:flex;gap:5px}
.history-ranges button{font:700 12px 'DM Sans',Arial,sans-serif;cursor:pointer;background:#fff;color:#58727d;padding:9px 13px;border:1px solid #dce7e3;border-radius:5px}
.history-ranges button.selected{background:#143243;color:#fff;border-color:#143243}
.history .chartbox{margin-top:15px}
@media(max-width:550px){.history-cat{font-size:11px;padding:8px 10px}.history-controls{align-items:stretch;flex-direction:column}.history .chartbox{height:280px;padding:12px}}

/* PB-107/PB-108: source-independent movement statuses and compact movers */
.is-reentry{color:#7b60a1}
.movers-panel{margin:-8px 0 26px;padding:20px 22px;border:1px solid var(--rule);border-radius:9px;background:#fbfcfb}
.movers-intro{margin-bottom:13px}.movers-intro p{margin:5px 0 0;font-size:12px;color:var(--muted)}
.movers-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.movers-column{min-width:0}
.movers-column h3{font:800 14px Manrope,sans-serif;margin:0 0 8px}
.mover-item{display:flex;align-items:center;gap:10px;border-top:1px solid var(--rule);padding:10px 0;font-size:12px}
.mover-place{width:38px;flex:none;color:#8a969c;font-weight:800}.mover-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.mover-change{font-weight:800;white-space:nowrap;font-size:12px}
@media(max-width:650px){.movers-grid{grid-template-columns:1fr;gap:18px}.movers-panel{padding:15px 14px}.mover-item{padding:8px 0}}

/* PB-128: destination anchors and mobile navigation; keep desktop hero/ad layout. */
#charts, #movers, #about { scroll-margin-top: 18px; }
.section-anchor { display: block; height: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 550px) {
  .mast { height: auto; min-height: 72px; flex-wrap: wrap; gap: 8px 14px; padding: 12px 0; }
  .mast nav { flex: 1 1 auto; min-width: 0; justify-content: flex-end; gap: 12px; }
  .mast nav a { white-space: nowrap; }
  .mast nav a:last-child { display: inline; }
}
@media (max-width: 380px) {
  .mast nav { flex-basis: 100%; justify-content: flex-start; }
}

/* MVP 1.2 source selector: independent Apple and Spotify charts */
.source-picker{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 15px}
.source-link{display:inline-block;padding:11px 16px;border:1px solid #dce7e3;border-radius:6px;font-weight:800;font-size:12px;color:#58727d;background:white}
.source-link.selected{background:#143243;color:white;border-color:#143243}
.source-link:hover:not(.selected){background:#f1f7f5}
.spotify-audit{font-size:12px;color:#647a84;margin:0 0 18px;line-height:1.6}
.spotify-audit a{text-decoration:underline;color:#097f78}
.podcast-row .cover-wrap:has(img[src=""]){background:#e0e7e5}
@media(max-width:550px){.source-picker{gap:6px}.source-link{padding:9px 12px}}

.spotify-cover-placeholder{display:flex;align-items:center;justify-content:center;font-size:76px;background:#e0e7e5;color:#143243}

/* PB-119/120: one optional, labeled in-feed placement after 25 rankings.
   Show-page ads reuse the existing AdSenseShowSlot before chart history. */
.ad-chart-inline{max-width:780px;min-height:0;margin:22px auto 26px;padding:15px 12px 18px}
.ad-chart-inline .adsbygoogle{display:block;width:100%;min-height:0}
.show-hero + .ad-show, .spotify-audit + .ad-show {margin-top:25px;margin-bottom:10px}
@media(max-width:550px){.ad-chart-inline{margin:18px 0 22px;padding:12px 8px}.show-hero + .ad-show,.spotify-audit + .ad-show{margin-top:18px}}
