/* Shared themes. Desktop typography is scoped separately below. */
:root {
  color-scheme: dark;
  --header: #151c27;
  --border: #ffffff12;
  --hover: #ffffff05;
  --field: #121a25;
  --track: #111b26;
  --primary-bg: #d3f985;
  --primary-ink: #233217;
}
html[data-theme='light'] {
  color-scheme: light;
  --bg: #f3f5f8;
  --panel: #fff;
  --panel2: #e9eef4;
  --text: #243247;
  --muted: #63738a;
  --line: #dce3ec;
  --lime: #4f761e;
  --blue: #2c69a8;
  --pink: #9b4c86;
  --header: #fff;
  --border: #d5dfe9;
  --hover: #edf2f6;
  --field: #f4f7fa;
  --track: #e4eaf1;
  --primary-bg: #496e1f;
  --primary-ink: #fff;
}
body {
  background: var(--bg);
  color: var(--text);
}
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--panel);
  color: var(--text);
  font-size: 13px;
  white-space: nowrap;
  min-height: 40px;
}
.theme-toggle svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}
.theme-toggle:hover {
  background: var(--panel2);
}
.header-end {
  gap: 17px;
}
.header {
  background: var(--header);
}
.btn.primary {
  background: var(--primary-bg);
  color: var(--primary-ink);
}
.btn.primary:hover {
  filter: brightness(1.06);
}
.trending-section {
  padding: 22px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 9px;
  margin-bottom: 34px;
}
.trending-section > .section-head {
  margin-bottom: 20px;
  align-items: center;
}
.trending-title {
  display: flex;
  align-items: center;
  gap: 12px;
}
.trending-title h2 {
  font-size: 20px;
  letter-spacing: -0.4px;
}
.trending-title p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.trending-symbol {
  display: grid;
  place-items: center;
  color: var(--lime);
  font-size: 25px;
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  background: var(--hover);
  border-radius: 8px;
}
.trending-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
}
.trending-card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  background: var(--bg);
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 12px;
}
.trending-card:hover {
  background: var(--panel2);
  border-color: var(--border);
}
.trending-rank {
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.5px;
  color: var(--muted);
  width: 24px;
  flex-shrink: 0;
}
.trending-card:nth-child(-n + 3) .trending-rank {
  color: var(--lime);
}
.trending-card img {
  width: 62px;
  height: 62px;
  border-radius: 5px;
  object-fit: cover;
  flex-shrink: 0;
}
.trending-card > div {
  flex: 1;
  min-width: 0;
}
.trending-card h3 {
  font-size: 15px;
  line-height: 1.6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text);
}
.trending-card p {
  font-size: 12px;
  color: var(--muted);
  margin: 3px 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.trending-card > div > span {
  font-size: 10px;
  color: var(--muted);
  opacity: 0.8;
}
.trending-update {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 18px;
  padding-top: 13px;
  border-top: 1px solid var(--line);
}
/* Light surfaces and readable foregrounds, including profile and detail pages. */
html[data-theme='light'] .header {
  border-bottom-color: var(--border);
}
html[data-theme='light']
  :is(
    .header nav a.active,
    .artist-small h3,
    .section-head h2,
    .rating-head h3,
    .review-card h3,
    .credit-card h3,
    .profile-summary-values strong,
    .profile-number-grid strong,
    .profile-rank-title b
  ) {
  color: var(--text);
}
html[data-theme='light']
  :is(
    input,
    select,
    textarea,
    .btn,
    .pill,
    .library-tab,
    .rating-buttons button,
    .profile-dialog
  ) {
  border-color: var(--border);
}
html[data-theme='light'] :is(input, select, textarea) {
  background: var(--field);
}
html[data-theme='light'] input::placeholder,
html[data-theme='light'] textarea::placeholder {
  color: #77869a;
}
html[data-theme='light']
  :is(
    .header nav a,
    .date-label,
    .card-meta,
    .small-note,
    .text-link,
    .artist-small p,
    .music-card .artist,
    .mini-row p,
    .ranknum,
    .empty,
    .footer p,
    .footer > span,
    .detail-byline,
    .detail-intro p.description,
    .metadata dd,
    .tag,
    .rail-section h3,
    .external,
    .rating-help,
    .review-card .review-body,
    .review-top small,
    .stat-note,
    .barcol span,
    .barlabels span,
    .trackrow .num,
    .trackrow .track-info small,
    .trackrow .time,
    .list-info
  ) {
  color: var(--muted);
}
html[data-theme='light']
  :is(
    .panel,
    .metadata,
    .metric,
    .rating-panel,
    .review-card,
    .review-form,
    .chart-panel,
    .status-stat,
    .tracklist,
    .credit-card,
    .small-album,
    .artist-tile,
    .profile-summary-card,
    .profile-chart-card,
    .profile-number-grid > div,
    .profile-about,
    .profile-genre-panel,
    .profile-artist-favorites,
    .profile-status-form,
    .profile-activity-card,
    .profile-review,
    .profile-list,
    .profile-heatmap
  ) {
  border-color: var(--border);
  box-shadow: 0 2px 5px #20304503;
}
html[data-theme='light'] .btn:not(.primary) {
  background: var(--panel2);
  color: var(--text);
}
html[data-theme='light'] .btn.ghost {
  background: transparent;
}
html[data-theme='light'] :is(.btn:not(.primary):hover, .pill:hover, .library-tab:hover) {
  background: #e2eaf1;
}
html[data-theme='light'] .pill.active {
  color: #42691b;
  background: #e6efd8;
  border-color: #cadab3;
}
html[data-theme='light'] .feature {
  background: linear-gradient(120deg, #e8efe2, #e3edf0);
  border-color: #d6e2dc;
}
html[data-theme='light'] .feature .summary {
  color: #566b67;
}
html[data-theme='light'] .feature:after {
  border-color: #4e6f2522;
  box-shadow:
    0 0 0 45px #4e6f2505,
    0 0 0 90px #4e6f2505;
}
html[data-theme='light'] .library-teaser {
  background: linear-gradient(145deg, #e4edf0, #edf2e7);
}
html[data-theme='light'] .library-teaser p {
  color: #586e78;
}
html[data-theme='light'] .icon-btn {
  background: var(--panel2);
  border-color: var(--border);
  color: var(--muted);
}
html[data-theme='light'] .icon-btn.on {
  color: #476f17;
  background: #edf5e4;
  border-color: #cbdab5;
}
html[data-theme='light'] .save-corner {
  background: #17212edb;
  color: #fff;
  border-color: #ffffff22;
}
html[data-theme='light'] .save-corner.on {
  color: #d3f985;
}
html[data-theme='light'] :is(.section-head small, .section-head .kicker) {
  color: var(--muted);
}
html[data-theme='light'] .empty {
  background: #eaf0f54d;
  border-color: #cfdae6;
}
html[data-theme='light'] .empty h3 {
  color: var(--text);
}
html[data-theme='light'] .detail-banner:after {
  background:
    linear-gradient(0deg, var(--bg), #10151d11 80%),
    linear-gradient(90deg, #10151d55, transparent, #10151d55);
}
html[data-theme='light'] .detail-banner .banner-image {
  filter: blur(3px) brightness(0.65);
}
html[data-theme='light'] .breadcrumb {
  color: #526479;
}
html[data-theme='light'] .banner-inner .breadcrumb {
  color: #fff;
}
html[data-theme='light'] .detail-intro .eyebrow {
  color: #4a6e23;
}
html[data-theme='light'] :is(.detail-byline a, .metadata dt, .review-top b) {
  color: var(--text);
}
html[data-theme='light'] :is(.rating-buttons button, .review-form textarea) {
  background: var(--field);
}
html[data-theme='light'] .rating-buttons button.active {
  background: var(--primary-bg);
  color: #fff;
  border-color: var(--primary-bg);
}
html[data-theme='light'] .credit-avatar {
  background: #dce7f2;
  color: #405f7d;
}
html[data-theme='light'] .library-tab.active {
  background: #e3ecd7;
  border-color: #cbdcb4;
  color: #42691b;
}
html[data-theme='light'] :is(.profile-list-row:hover, .trackrow:hover) {
  background: #f1f5f8;
}
html[data-theme='light'] .toast,
html[data-theme='light'] .skip {
  background: var(--primary-bg);
  color: #fff;
}
html[data-theme='light'] .profile-page[data-accent='lime'] {
  --profile-accent: #4e741e !important;
  --profile-rgb: 78, 116, 30 !important;
}
html[data-theme='light'] .profile-page[data-accent='rose'] {
  --profile-accent: #a23570 !important;
  --profile-rgb: 162, 53, 112 !important;
}
html[data-theme='light'] .profile-page[data-accent='blue'] {
  --profile-accent: #2e679f !important;
  --profile-rgb: 46, 103, 159 !important;
}
html[data-theme='light'] .profile-page[data-accent='amber'] {
  --profile-accent: #9c5a12 !important;
  --profile-rgb: 156, 90, 18 !important;
}
html[data-theme='light']
  :is(
    .profile-tabs,
    .profile-summary-foot,
    .profile-stats-nav button.active,
    .profile-segment,
    .profile-list-heading
  ) {
  background: #e8eef4;
}
html[data-theme='light'] :is(.profile-tabs a, .profile-caption, .profile-edit) {
  color: #4c657c;
}
html[data-theme='light'] .profile-banner :is(.profile-caption, .profile-identity p) {
  color: #c3d5d2;
}
html[data-theme='light'] .profile-banner .profile-edit {
  color: #e0e8ee;
  background: #1c3445a8;
  border-color: #8fa8aa55;
}
html[data-theme='light'] .profile-tabs a.active,
html[data-theme='light'] .profile-stats-nav button.active {
  color: var(--profile-accent);
}
html[data-theme='light'] .profile-avatar {
  border-color: var(--bg);
}
html[data-theme='light']
  :is(
    .profile-summary-values span,
    .profile-summary-label > span,
    .profile-summary-label a,
    .profile-summary-foot,
    .profile-about .profile-block-label,
    .profile-about p,
    .profile-insights span,
    .profile-method,
    .profile-streak,
    .profile-streak b,
    .profile-genre-panel p,
    .profile-artist-favorites a,
    .profile-fav-cover > span,
    .profile-activity-section .section-head select,
    .profile-activity-text > span,
    .profile-activity-text > small,
    .profile-activity-text time,
    .profile-activity-text > p,
    .profile-data-note,
    .profile-local-note,
    .profile-stats-nav > span,
    .profile-stats-nav button,
    .profile-segment button,
    .profile-number-grid span,
    .profile-chart-card .section-head > span,
    .profile-score-chart b,
    .profile-chart-caption,
    .profile-status-bars span,
    .profile-rank-meta,
    .profile-rank-title small,
    .profile-year-chart span,
    .profile-review-meta,
    .profile-review p,
    .profile-list-title small,
    .profile-list-heading,
    .profile-list-rating small
  ) {
  color: var(--muted);
}
html[data-theme='light']
  :is(
    .profile-insights strong,
    .profile-about h3,
    .profile-status-bars b,
    .profile-rank-title,
    .profile-review h3,
    .profile-list-title strong,
    .profile-chart-card h3
  ) {
  color: var(--text);
}
html[data-theme='light'] .profile-status-form input {
  background: transparent;
  color: var(--text);
}
html[data-theme='light'] .profile-segment button.active {
  background: #d8e3ed;
  color: var(--profile-accent);
}
html[data-theme='light']
  :is(.profile-status-track, .profile-status-bars i, .profile-rank-row i) {
  background: var(--track);
}
html[data-theme='light'] .profile-status-track {
  background: #dce4ed;
}
html[data-theme='light'] .heat-cell.level-0 {
  background: #e2e8ef;
}
html[data-theme='light'] :is(.heat-days, .heat-months, .heat-legend) {
  color: #687e94;
}
html[data-theme='light'] .genre-overview-labels b {
  color: #445e71;
}
html[data-theme='light'] .genre-overview-labels > div:nth-child(1) span {
  color: #4b701a !important;
}
html[data-theme='light'] .genre-overview-labels > div:nth-child(2) span {
  color: #27649f !important;
}
html[data-theme='light'] .genre-overview-labels > div:nth-child(3) span {
  color: #8150a8 !important;
}
html[data-theme='light'] .genre-overview-labels > div:nth-child(4) span {
  color: #a35739 !important;
}
html[data-theme='light'] .profile-duration-card {
  background: linear-gradient(120deg, #e7efdf, #e2ebf2);
  border-color: var(--border);
}
html[data-theme='light'] .profile-duration-card :is(span, p) {
  color: #586f78;
}
html[data-theme='light'] .profile-score-chart i.zero {
  background: #d6e0e9;
}
html[data-theme='light'] .profile-page .btn.primary {
  background: var(--profile-accent);
  color: #fff;
}
html[data-theme='light'] .profile-list-row select {
  background: var(--field);
  border-color: var(--border);
  color: var(--text);
}
html[data-theme='light'] .profile-dialog {
  background: #fff;
  color: var(--text);
  border-color: var(--border);
}
html[data-theme='light'] .profile-dialog :is(input, select, textarea) {
  background: var(--field);
  border-color: var(--border);
  color: var(--text);
}
html[data-theme='light'] .profile-dialog :is(label, .profile-form-hint) {
  color: var(--muted);
}
/* Desktop legibility: primary text 15–16px, metadata 12–14px. */
@media (min-width: 900px) {
  body {
    font-size: 16px;
    line-height: 1.7;
  }
  .header {
    height: 82px;
  }
  .header-inner {
    gap: 52px;
  }
  .header nav {
    gap: 28px;
  }
  .header nav a {
    font-size: 15px;
  }
  .brand {
    font-size: 33px;
  }
  .demo-label {
    font-size: 12px;
  }
  .avatar {
    width: 37px;
    height: 37px;
    font-size: 14px;
  }
  .theme-toggle {
    font-size: 13px;
    min-height: 42px;
  }
  .page {
    padding-top: 36px;
  }
  .welcome {
    margin-bottom: 28px;
  }
  .welcome h1 {
    font-size: 34px;
  }
  .welcome p {
    font-size: 15px;
  }
  .eyebrow {
    font-size: 11px;
  }
  .date-label {
    font-size: 12px;
  }
  .toolbar input,
  .toolbar select {
    font-size: 15px;
  }
  .toolbar input {
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .search svg {
    top: 18px;
  }
  .filters {
    gap: 10px;
  }
  .pill {
    font-size: 13px;
    padding: 7px 15px;
  }
  .section {
    margin-bottom: 36px;
  }
  .section-head {
    margin-bottom: 19px;
  }
  .section-head h2,
  h2 {
    font-size: 22px;
  }
  .section-head .kicker {
    font-size: 11px;
  }
  .text-link {
    font-size: 13px;
  }
  .discovery-layout {
    gap: 30px;
    grid-template-columns: minmax(0, 1fr) 285px;
  }
  .feature {
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 24px;
    padding: 24px;
  }
  .feature .cover {
    width: 150px;
  }
  .feature h2 {
    font-size: 30px;
  }
  .feature .summary {
    font-size: 14px;
    margin-top: 10px;
  }
  .feature .muted {
    font-size: 14px;
  }
  .btn {
    font-size: 14px;
    padding: 11px 17px;
  }
  .btn.small {
    font-size: 12px;
    padding: 8px 12px;
  }
  .btn svg {
    width: 16px;
    height: 16px;
  }
  .cards {
    gap: 28px 18px;
  }
  .music-card h3 {
    font-size: 16px;
    line-height: 1.55;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    min-height: 49px;
    margin-top: 11px;
  }
  .music-card .artist {
    font-size: 14px;
  }
  .card-meta {
    font-size: 12px;
    margin-top: 7px;
  }
  .icon-btn {
    width: 33px;
    height: 33px;
  }
  .icon-btn svg {
    width: 17px;
    height: 17px;
  }
  .status-label {
    font-size: 11px;
    padding: 3px 7px;
  }
  .panel {
    padding: 21px;
  }
  .panel h2 {
    font-size: 17px;
  }
  .panel .helper {
    font-size: 13px;
    line-height: 1.8;
  }
  .mini-row {
    gap: 11px;
    padding: 15px 0;
  }
  .mini-row h3 {
    font-size: 14px;
    white-space: normal;
    line-height: 1.55;
  }
  .mini-row p {
    font-size: 12px;
    line-height: 1.7;
  }
  .mini-row .thumb {
    width: 48px;
  }
  .mini-row .number {
    font-size: 13px;
  }
  .library-teaser h2 {
    font-size: 23px;
  }
  .library-teaser p {
    font-size: 14px;
  }
  .small-note {
    font-size: 12px;
    line-height: 1.9;
  }
  .empty h3 {
    font-size: 16px;
  }
  .empty p {
    font-size: 14px;
  }
  .artist-small h3 {
    font-size: 14px;
  }
  .artist-small p {
    font-size: 12px;
  }
  .footer p {
    font-size: 13px;
  }
  .footer > span {
    font-size: 12px;
  }
  .footer .brand {
    font-size: 25px;
  }
  .trending-title h2 {
    font-size: 22px;
  }
  .trending-title p {
    font-size: 13px;
  }
  .trending-card {
    gap: 13px;
    padding: 13px;
  }
  .trending-card h3 {
    font-size: 16px;
  }
  .trending-card p {
    font-size: 13px;
  }
  .trending-card > div > span {
    font-size: 11px;
  }
  .trending-update {
    font-size: 12px;
  }
  .trending-section {
    padding: 22px;
  }
  .trending-rank {
    font-size: 21px;
  }
  .detail-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 34px;
  }
  .detail-intro h1 {
    font-size: 40px;
  }
  .detail-intro p.description {
    font-size: 14px;
  }
  .detail-byline {
    font-size: 15px;
  }
  .breadcrumb {
    font-size: 13px;
  }
  .tab {
    font-size: 15px;
    padding: 15px 0;
  }
  .tabs {
    gap: 30px;
  }
  .rail-actions .btn {
    font-size: 13px;
    padding: 10px 12px;
  }
  .rail-actions .icon-btn {
    height: 43px;
    width: 40px;
  }
  .status-control label {
    font-size: 12px;
  }
  .status-control select {
    font-size: 14px;
  }
  .metadata {
    padding: 20px;
  }
  .metadata dt {
    font-size: 14px;
  }
  .metadata dd {
    font-size: 14px;
    line-height: 1.8;
  }
  .rail-section h3 {
    font-size: 14px;
  }
  .tag {
    font-size: 12px;
  }
  .external {
    font-size: 13px;
  }
  .metrics {
    gap: 13px;
  }
  .metric {
    padding: 18px;
  }
  .metric strong {
    font-size: 28px;
  }
  .metric strong small {
    font-size: 14px;
  }
  .metric span {
    font-size: 12px;
  }
  .rating-head h3 {
    font-size: 16px;
  }
  .rating-head .value {
    font-size: 24px;
  }
  .rating-head .value small {
    font-size: 13px;
  }
  .rating-buttons button {
    font-size: 14px;
    padding: 10px 0;
  }
  .rating-help {
    font-size: 12px;
  }
  .detail-section h2,
  .detail-section h3 {
    font-size: 18px;
  }
  .detail-columns {
    grid-template-columns: minmax(0, 1fr) 245px;
    gap: 24px;
  }
  .video-caption {
    font-size: 12px;
    line-height: 1.8;
  }
  .small-album {
    gap: 12px;
  }
  .small-album h3 {
    font-size: 16px;
  }
  .small-album p {
    font-size: 13px;
  }
  .small-album .tiny {
    font-size: 10px;
  }
  .credit-card {
    gap: 12px;
    padding: 15px;
  }
  .credit-card h3 {
    font-size: 14px;
  }
  .credit-card p {
    font-size: 12px;
  }
  .credit-avatar {
    font-size: 13px;
    width: 38px;
    height: 38px;
  }
  .review-top strong {
    font-size: 14px;
  }
  .review-top small {
    font-size: 12px;
  }
  .review-card h3 {
    font-size: 17px;
  }
  .review-card .review-body {
    font-size: 15px;
  }
  .review-score {
    font-size: 18px;
  }
  .review-form h3 {
    font-size: 17px !important;
  }
  .review-form label {
    font-size: 14px;
  }
  .review-form input,
  .review-form textarea {
    font-size: 15px;
  }
  .form-footer span {
    font-size: 12px;
  }
  .chart-panel h3 {
    font-size: 16px;
  }
  .chart-description {
    font-size: 14px !important;
  }
  .barcol span,
  .barlabels span {
    font-size: 12px;
  }
  .stat-note {
    font-size: 13px;
  }
  .status-stat strong {
    font-size: 27px;
  }
  .status-stat span {
    font-size: 13px;
  }
  .trackrow {
    font-size: 15px;
    padding: 15px 18px;
  }
  .trackrow .num {
    font-size: 13px;
  }
  .trackrow .track-info small {
    font-size: 12px;
  }
  .trackrow .time {
    font-size: 13px;
  }
  .artist-tile h3 {
    font-size: 17px;
  }
  .artist-tile p {
    font-size: 14px;
  }
  .artist-tile .tiny {
    font-size: 12px;
  }
  .artist-page-head h1 {
    font-size: 36px;
  }
  .artist-page-head p {
    font-size: 15px;
  }
  .artist-page-head .tiny {
    font-size: 13px;
  }
  .library-tab {
    font-size: 14px;
    padding: 10px 15px;
  }
  .library-tab span {
    font-size: 12px;
  }
  .list-info {
    font-size: 13px;
  }
  .profile-identity h1 {
    font-size: 32px;
  }
  .profile-identity p {
    font-size: 13px;
  }
  .profile-caption {
    font-size: 10px;
  }
  .profile-edit {
    font-size: 13px;
  }
  .profile-tabs a {
    font-size: 15px;
    padding: 17px 0;
  }
  .profile-tabs > div {
    gap: 31px;
  }
  .profile-content {
    padding-top: 34px;
  }
  .profile-overview {
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 30px;
  }
  .profile-about .profile-block-label {
    font-size: 10px;
  }
  .profile-about p {
    font-size: 15px;
  }
  .profile-block h2 {
    font-size: 18px;
  }
  .profile-block .section-head .kicker {
    font-size: 11px;
  }
  .profile-summary-label > span {
    font-size: 11px;
  }
  .profile-summary-label a {
    font-size: 12px;
  }
  .profile-summary-values {
    padding: 20px 14px 25px;
    gap: 10px;
  }
  .profile-summary-values strong {
    font-size: 29px;
  }
  .profile-summary-values span {
    font-size: 12px;
    line-height: 1.7;
  }
  .profile-summary-foot {
    font-size: 12px;
    padding: 11px 17px;
  }
  .profile-insights strong {
    font-size: 27px;
  }
  .profile-insights strong small {
    font-size: 14px;
  }
  .profile-insights span {
    font-size: 13px;
    line-height: 1.8;
  }
  .profile-method {
    font-size: 11px;
  }
  .profile-streak {
    font-size: 12px;
  }
  .heat-months,
  .heat-legend {
    font-size: 10px;
  }
  .heat-days {
    font-size: 9px;
  }
  .genre-overview-labels span {
    font-size: 13px;
  }
  .genre-overview-labels b {
    font-size: 15px;
  }
  .genre-overview-labels small {
    font-size: 12px;
  }
  .profile-genre-panel p {
    font-size: 12px;
  }
  .profile-artist-favorites a {
    font-size: 13px;
  }
  .profile-fav-cover > span {
    font-size: 12px;
  }
  .profile-overview .empty h3 {
    font-size: 15px;
  }
  .profile-overview .empty p {
    font-size: 13px;
  }
  .profile-left .empty .btn {
    font-size: 12px;
  }
  .profile-activity-section .section-head select {
    font-size: 13px;
  }
  .profile-status-form input {
    font-size: 14px;
  }
  .profile-status-form .btn {
    font-size: 13px;
  }
  .profile-activity-grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .profile-activity-text > span {
    font-size: 12px;
    padding-right: 0;
  }
  .profile-activity-text > a {
    font-size: 15px;
  }
  .profile-activity-text > small {
    font-size: 12px;
  }
  .profile-activity-text time {
    font-size: 11px;
    float: none;
    display: block;
    margin: 0 0 7px;
  }
  .note-card .profile-activity-text > p {
    font-size: 15px;
  }
  .note-card .profile-activity-text > span {
    font-size: 12px;
  }
  .note-card .text-link {
    font-size: 12px;
  }
  .profile-load-more,
  .profile-clear-day {
    font-size: 13px;
  }
  .profile-stats-nav > span {
    font-size: 11px;
  }
  .profile-stats-nav button {
    font-size: 14px;
  }
  .profile-stats-layout .section-head h2 {
    font-size: 23px;
  }
  .profile-segment button {
    font-size: 13px;
  }
  .profile-number-grid strong {
    font-size: 31px;
  }
  .profile-number-grid span {
    font-size: 13px;
  }
  .profile-chart-card h3 {
    font-size: 16px;
  }
  .profile-chart-card .section-head > span {
    font-size: 12px;
  }
  .profile-score-chart span,
  .profile-score-chart b {
    font-size: 12px;
  }
  .profile-chart-caption {
    font-size: 12px;
  }
  .profile-status-bars span {
    font-size: 13px;
  }
  .profile-status-bars b {
    font-size: 14px;
  }
  .profile-rank-title {
    font-size: 15px;
  }
  .profile-rank-title b {
    font-size: 15px;
  }
  .profile-rank-title small {
    font-size: 12px;
  }
  .rank-index {
    font-size: 14px;
  }
  .profile-rank-meta {
    font-size: 12px;
  }
  .profile-duration-card span {
    font-size: 11px;
  }
  .profile-duration-card strong {
    font-size: 34px;
  }
  .profile-duration-card small {
    font-size: 16px;
  }
  .profile-duration-card p {
    font-size: 14px;
  }
  .profile-data-note,
  .profile-local-note {
    font-size: 12px;
  }
  .profile-year-chart strong,
  .profile-year-chart span {
    font-size: 14px;
  }
  .profile-review-meta {
    font-size: 14px;
  }
  .profile-review-meta time {
    font-size: 12px;
  }
  .profile-review-meta b {
    font-size: 16px;
  }
  .profile-review h3 {
    font-size: 18px;
  }
  .profile-review p {
    font-size: 15px;
  }
  .profile-review .text-link {
    font-size: 13px;
  }
  .profile-list-heading {
    font-size: 11px;
  }
  .profile-list-title strong {
    font-size: 15px;
  }
  .profile-list-title small {
    font-size: 12px;
  }
  .profile-list-row select {
    font-size: 13px;
  }
  .profile-list-rating {
    font-size: 21px;
  }
  .profile-list-rating small {
    font-size: 12px;
  }
  .profile-dialog {
    width: 520px;
  }
  .profile-dialog h2 {
    font-size: 22px;
  }
  .profile-dialog .tiny {
    font-size: 13px;
  }
  .profile-dialog label {
    font-size: 14px;
  }
  .profile-dialog input,
  .profile-dialog select,
  .profile-dialog textarea {
    font-size: 15px;
  }
  .profile-dialog input[type='file'] {
    font-size: 13px;
  }
  .profile-form-hint {
    font-size: 12px;
  }
  .profile-dialog label.profile-remove-avatar {
    font-size: 13px;
  }
}
html[data-theme='light']
  :is(
    .pill,
    .tab,
    .metric span,
    .metric strong small,
    .rating-head .value small,
    .credit-card p,
    .small-album p,
    .demo-label
  ) {
  color: var(--muted);
}
html[data-theme='light'] .metric strong {
  color: var(--text);
}
html[data-theme='light'] .metric:first-child strong {
  color: var(--lime);
}
html[data-theme='light'] .tab.active {
  color: var(--lime);
}
html[data-theme='light'] .rating-buttons button {
  color: #586d83;
}
html[data-theme='light'] .rating-buttons button.active {
  color: #fff;
}
html[data-theme='light'] .pill.active {
  color: #42691b;
}
.rail-actions > [data-slot='library-actions'] {
  flex: 1;
  min-width: 0;
}
.library-split {
  position: relative;
  width: 100%;
}
.library-split-buttons {
  display: flex;
  border-radius: 6px;
  overflow: hidden;
  background: var(--primary-bg);
}
.library-split .library-main {
  flex: 1;
  min-width: 0;
  border-radius: 0;
  border: 0;
  padding: 10px 8px;
  gap: 5px;
  white-space: nowrap;
  font-size: 13px;
}
.library-menu-toggle {
  display: grid;
  place-items: center;
  width: 35px;
  flex-shrink: 0;
  background: #0000000b;
  color: var(--primary-ink);
  border: 0;
  border-left: 1px solid #00000012;
  padding: 0;
}
.library-menu-toggle:hover {
  background: #00000018;
}
.library-menu-toggle svg {
  width: 17px;
  height: 17px;
}
.library-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 12px);
  min-width: 220px;
  width: max-content;
  max-width: 300px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 7px 0;
  box-shadow: 0 10px 30px #0004;
  z-index: 15;
}
.library-menu[hidden] {
  display: none;
}
.library-menu:before {
  content: '';
  position: absolute;
  right: 12px;
  top: -7px;
  width: 12px;
  height: 12px;
  background: var(--panel);
  border-left: 1px solid var(--border);
  border-top: 1px solid var(--border);
  transform: rotate(45deg);
}
.library-menu button {
  position: relative;
  background: transparent;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 16px;
  width: 100%;
  text-align: left;
  color: var(--text);
  font-size: 14px;
}
.library-menu button:hover,
.library-menu button:focus-visible {
  background: var(--panel2);
  outline-offset: -2px;
}
.library-menu button[aria-checked='true'] {
  color: var(--lime);
}
.library-menu button svg {
  width: 15px;
  height: 15px;
}
.library-menu-divider {
  height: 1px;
  background: var(--line);
  margin: 6px 0;
}
.library-menu .remove-library-status {
  color: var(--muted);
  font-size: 12px;
}
.metric-note {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.7;
  margin-top: 6px;
}
.rail-actions {
  align-items: stretch;
}
.rail-actions > .icon-btn {
  height: auto;
  min-height: 42px;
}
.library-editor {
  width: 450px;
}
.library-editor .muted {
  font-size: 14px;
}
.library-editor .profile-form-actions {
  margin-top: 23px;
}

/* Chỉnh nhanh thư viện từ dấu + trên thẻ nhạc. */
.profile-dialog.library-editor {
  width: 640px;
  padding: 0;
  background: var(--panel);
  border-color: var(--border);
  overflow: auto;
}
.library-editor-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 38px 30px 26px;
  background: var(--panel2);
  border-bottom: 1px solid var(--border);
}
.library-editor-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(24px);
  opacity: .12;
  z-index: -1;
  pointer-events: none;
}
.library-editor-hero > .profile-dialog-close {
  position: absolute;
  top: 13px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: var(--muted);
  border-radius: 6px;
}
.library-editor-hero > .profile-dialog-close:hover {
  background: var(--hover);
  color: var(--text);
}
.library-editor-heading {
  display: flex;
  align-items: center;
  gap: 20px;
}
.library-editor-heading > .cover {
  width: 88px;
  min-width: 88px;
  height: 88px;
  box-shadow: 0 6px 20px #0002;
}
.library-editor-heading > div:last-child { min-width: 0; }
.library-editor-eyebrow {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  margin-bottom: 8px;
}
.library-editor-heading h2 {
  font-size: 23px;
  line-height: 1.35;
  margin: 0 0 8px;
  overflow-wrap: anywhere;
}
.library-editor-heading p {
  margin: 0;
  font-size: 14px;
  color: var(--muted);
}
.library-editor-body { padding: 24px 30px; }
.library-editor-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.library-editor-fields label {
  margin: 0 0 9px;
  color: var(--muted);
  font-size: 14px;
}
.library-editor-fields :is(input, select) {
  height: 46px;
  font-size: 15px;
}
.library-editor-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.library-editor-favorite {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 0;
  border: 0;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.library-editor-favorite svg { width: 22px; height: 22px; }
.library-editor-favorite:hover,
.library-editor-favorite.on { color: var(--pink); }
.library-editor-buttons { display: flex; gap: 10px; }
.library-editor-buttons .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  min-height: 40px;
  min-width: 74px;
  padding: 0 18px;
  font-size: 14px;
  line-height: 1;
}
