/* MSB +18 — one visual contract for every list surface. */
.msb-explicit-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:14px;padding:0 4px;margin-inline-start:3px;border-radius:4px;background:linear-gradient(135deg,#ff4d5e,#b20d2b);color:#fff!important;font:800 8px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0;box-shadow:0 2px 7px rgba(178,13,43,.16);vertical-align:middle;white-space:nowrap;flex:0 0 auto;transform:translateY(-1px)}
html[data-theme="light"] .msb-explicit-badge{box-shadow:0 3px 10px rgba(139,10,34,.14)}
/* Filter only list/card rows. Never hide a standalone song page/container. */
html.msb-explicit-filter-on .music-card[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-term-card[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-term-list-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .app-song-card[data-msb-explicit="1"],
html.msb-explicit-filter-on .app-list-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .track-item-app[data-msb-explicit="1"],
html.msb-explicit-filter-on .related-list-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .song-item-modern[data-msb-explicit="1"],
html.msb-explicit-filter-on .suggestion-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .recently-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .top-song-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-liked-track[data-msb-explicit="1"],
html.msb-explicit-filter-on .artist-song-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .song-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-followed-mix__track[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-taste-mix__track[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-chart-track[data-msb-explicit="1"],
html.msb-explicit-filter-on .sidebar-search-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .search-result-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .playlist-modal-item[data-msb-explicit="1"],
html.msb-explicit-filter-on .msb-offline-item[data-msb-explicit="1"]{display:none!important}
@media(max-width:640px){.msb-explicit-badge{min-width:19px;height:13px;padding:0 3px;font-size:7.5px;margin-inline-start:2px}}

/* +18 preference: account-level setting in the MSB dashboard. */
.msb-explicit-setting-card{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:18px;margin:14px 0 24px;position:relative;overflow:hidden}
.msb-explicit-setting-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:rgba(255,77,94,.12);color:#ff6675;font-size:18px;flex:0 0 auto}
.msb-explicit-setting-copy{min-width:0;flex:1}.msb-explicit-setting-copy strong{display:flex;align-items:center;gap:8px;font-size:14px;color:#f6fbf8}.msb-explicit-setting-copy p{margin:5px 0 0;font-size:11px;line-height:1.8;color:#9ba5a0}.msb-explicit-premium-pill{display:inline-flex;padding:3px 7px;border-radius:999px;background:rgba(30,215,96,.12);color:#2ade6f;font-size:9px;font-weight:800}
.msb-explicit-toggle{width:48px;height:28px;border:0;border-radius:999px;background:#353a37;padding:3px;cursor:pointer;transition:.2s;flex:0 0 auto;-webkit-tap-highlight-color:transparent}.msb-explicit-toggle span{display:block;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 7px rgba(0,0,0,.24)}.msb-explicit-toggle[aria-pressed="true"]{background:#1ed760}.msb-explicit-toggle[aria-pressed="true"] span{transform:translateX(20px)}[dir="rtl"] .msb-explicit-toggle[aria-pressed="true"] span{transform:translateX(-20px)}.msb-explicit-toggle.is-locked{opacity:.72;cursor:pointer}.msb-explicit-toggle:disabled{cursor:wait}
html[data-theme="light"] .msb-explicit-setting-card{background:#fff;border-color:rgba(20,40,29,.09);box-shadow:0 7px 24px rgba(30,55,39,.06)}html[data-theme="light"] .msb-explicit-setting-copy strong{color:#15221a}html[data-theme="light"] .msb-explicit-setting-copy p{color:#68746d}html[data-theme="light"] .msb-explicit-toggle{background:#d7ded9}
@media(max-width:640px){.msb-explicit-setting-card{padding:13px 14px;gap:11px}.msb-explicit-setting-icon{width:40px;height:40px}.msb-explicit-setting-copy strong{font-size:13px}.msb-explicit-setting-copy p{font-size:10px}.msb-explicit-toggle{width:44px;height:26px}.msb-explicit-toggle span{width:20px;height:20px}.msb-explicit-toggle[aria-pressed="true"] span{transform:translateX(18px)}[dir="rtl"] .msb-explicit-toggle[aria-pressed="true"] span{transform:translateX(-18px)}}

/* 3.10.7 — Homepage reserve slots: keep the original visible card count when +18 is filtered.
 * Reserve cards are already present in cached HTML; revealing them is DOM-only and makes no request. */
.msb-home-section .music-card[data-msb-home-reserve="1"]{display:none!important}
html.msb-explicit-filter-on .msb-home-section .music-card[data-msb-home-reserve="1"][data-msb-explicit="0"].msb-explicit-reserve-visible{display:flex!important}
