:root {
  --art-start: #4c1d43; --art-middle: #dc6b43; --art-end: #f0c16c;
  --bars-bottom: #ff7968; --bars-top: #ffc58a;
  --thumb-start: #572653; --thumb-end: #e47958;
  --overlay-glow: #314143; --overlay-base: #171a20; --overlay-tint: #273127;
  --art-gradient: linear-gradient(145deg, var(--art-start), var(--art-middle) 52%, var(--art-end));
  --bars-gradient: linear-gradient(to top, var(--bars-bottom), var(--bars-top));
  --thumb-gradient: linear-gradient(135deg, var(--thumb-start), var(--thumb-end));
  --overlay-gradient: radial-gradient(circle at 75% 0, var(--overlay-glow), var(--overlay-base) 55%);
  --overlay-wash: linear-gradient(120deg, var(--overlay-tint), transparent 50%);
}
.now-content .art-current.player-view { background-size: cover; background-position: center; }
.now-content .art-current.player-view #ytPlayer { opacity: 1; }
.now-content .art-current.color-view { background-image: var(--art-gradient) !important; }
.now-content .art-current.color-view #ytPlayer { opacity: .12; }
.now-content .art-current.player-view:after { background: #0002; }
.settings-panel { max-width: 920px; }
.settings-panel [hidden], .settings-panel[hidden] { display: none !important; }
.settings-header { margin-bottom: 25px; }
.settings-header h2 { margin: 9px 0 12px; font-size: 32px; letter-spacing: -.05em; }
.settings-header p { margin: 0; color: var(--muted); font-size: 13px; }
.settings-tabs { display: flex; gap: 6px; padding: 5px; width: fit-content; border: 1px solid var(--line); border-radius: 12px; background: #101116; margin-bottom: 25px; }
.settings-tab { padding: 10px 24px; border: 0; border-radius: 8px; font: 700 12px Manrope, sans-serif; color: var(--muted); background: transparent; cursor: pointer; }
.settings-tab[aria-selected=true] { background: #2c2830; color: var(--coral); box-shadow: 0 2px 5px #0004; }
.settings-panel :is(button, select, input):focus-visible { outline: 2px solid var(--coral); outline-offset: 4px; }
.settings-card { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.setting-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 17px 0; }
.setting-row + .setting-row { border-top: 1px solid var(--line); }
.setting-copy strong, .setting-copy span { display: block; }
.setting-copy strong { font-size: 14px; }
.setting-copy span { margin-top: 6px; max-width: 520px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.setting-toggle { position: relative; width: 46px; height: 26px; flex: 0 0 auto; }
.setting-toggle input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.setting-toggle span { display: block; width: 46px; height: 26px; border-radius: 99px; background: #30333f; transition: .2s; }
.setting-toggle span:after { content: ''; display: block; width: 20px; height: 20px; margin: 3px; border-radius: 50%; background: var(--text); transition: .2s; }
.setting-toggle input:checked + span { background: var(--coral); }
.setting-toggle input:checked + span:after { transform: translateX(20px); }
.setting-toggle input:focus-visible + span { outline: 2px solid var(--coral); outline-offset: 4px; }
.setting-toggle input:disabled + span { opacity: .38; filter: grayscale(.5); }
.setting-select { min-width: 180px; max-width: 100%; background: #242731; border: 1px solid #3a3d49; color: var(--text); border-radius: 7px; padding: 10px; font: 12px Manrope, sans-serif; }
.setting-text { width: min(360px, 46vw); background: #242731; border: 1px solid #3a3d49; color: var(--text); border-radius: 7px; padding: 11px 12px; font: 12px Manrope, sans-serif; }
.setting-text::placeholder { color: var(--muted); }
.settings-note { margin: 12px 0 0; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.6; }
.display-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 30px 0 16px; }
.display-heading h3 { font-size: 20px; margin: 0 0 5px; }
.display-heading p { color: var(--muted); font-size: 12px; margin: 0; }
.settings-panel .ghost-btn { cursor: pointer; white-space: nowrap; }
.gradient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gradient-card { min-width: 0; }
.gradient-card.is-disabled { background: #121419; }
.gradient-card.is-disabled header, .gradient-card.is-disabled .color-stops { opacity: .45; }
.gradient-card.is-disabled .gradient-preview { filter: grayscale(1); opacity: .4; }
.gradient-card.is-disabled input, .settings-panel .gradient-card button:disabled { cursor: not-allowed; }
.gradient-card button:disabled:hover { transform: none; filter: none; }
.gradient-card header { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gradient-card h4 { font-size: 14px; margin: 0; }
.gradient-card p { font-size: 11px; color: var(--muted); line-height: 1.6; min-height: 36px; margin: 10px 0 16px; }
.gradient-preview { height: 90px; border-radius: 9px; margin-bottom: 18px; border: 1px solid #ffffff10; overflow: hidden; }
.gradient-preview-artwork { background: var(--art-gradient); }
.gradient-preview-dashboard { background: linear-gradient(135deg, var(--dashboard-glow), var(--dashboard-card) 65%); box-shadow: inset 0 -8px 25px color-mix(in srgb, var(--dashboard-accent) 55%, transparent); }
.gradient-preview-thumbnails { background: var(--thumb-gradient); }
.gradient-preview-visualizer { display: flex; align-items: flex-end; gap: 4px; padding: 12px; background: #101116; }
.gradient-preview-visualizer i { flex: 1; border-radius: 3px 3px 0 0; background: var(--bars-gradient); }
.gradient-preview-visualizer[data-mode=dots]{align-items:center;justify-content:center}.gradient-preview-visualizer[data-mode=dots] i{flex:0 0 7px;width:7px;height:7px!important;border-radius:50%}.gradient-preview-visualizer[data-mode=linejump],.gradient-preview-visualizer[data-mode=linewave]{align-items:center}.gradient-preview-visualizer[data-mode=linejump] i,.gradient-preview-visualizer[data-mode=linewave] i{height:2px!important;border-radius:999px}.gradient-preview-visualizer[data-mode=linejump] i:nth-child(3n+1){transform:translateY(-14px)}.gradient-preview-visualizer[data-mode=linejump] i:nth-child(3n+2){transform:translateY(10px)}.gradient-preview-visualizer[data-mode=linewave] i:nth-child(4n+1){transform:translateY(-12px)}.gradient-preview-visualizer[data-mode=linewave] i:nth-child(4n+2){transform:translateY(-5px)}.gradient-preview-visualizer[data-mode=linewave] i:nth-child(4n+3){transform:translateY(7px)}.gradient-preview-visualizer[data-mode=linewave] i:nth-child(4n){transform:translateY(13px)}.gradient-preview-visualizer[data-mode=rays]{justify-content:center;padding-inline:22px}.gradient-preview-visualizer[data-mode=rays] i{flex:0 1 8px;transform-origin:bottom;border-radius:999px 999px 0 0}.gradient-preview-visualizer[data-mode=rays] i:nth-child(1){transform:rotate(-22deg)}.gradient-preview-visualizer[data-mode=rays] i:nth-child(2){transform:rotate(-18deg)}.gradient-preview-visualizer[data-mode=rays] i:nth-child(3){transform:rotate(-14deg)}.gradient-preview-visualizer[data-mode=rays] i:nth-last-child(3){transform:rotate(14deg)}.gradient-preview-visualizer[data-mode=rays] i:nth-last-child(2){transform:rotate(18deg)}.gradient-preview-visualizer[data-mode=rays] i:nth-last-child(1){transform:rotate(22deg)}.gradient-preview-visualizer[data-mode=spectrum] i:nth-child(odd){filter:brightness(1.3);transform:scaleY(.72)}.gradient-preview-visualizer[data-mode=off] i{opacity:.12;height:2px!important}.ambient-settings-card>.ghost-btn{margin:6px 0 0;padding:9px 14px}.ambient-settings-card input[type=color]{width:58px;height:38px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.gradient-preview-overlay { background: var(--overlay-gradient); position: relative; }
.gradient-preview-overlay:before { content: ''; position: absolute; inset: 0; background: var(--overlay-wash); opacity: .667; }
.color-stops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.color-stop { min-width: 0; }
.color-stop > label { display: block; color: var(--muted); font-size: 10px; margin-bottom: 7px; }
.color-inputs { display: flex; align-items: center; gap: 6px; padding: 5px; border: 1px solid #3a3d49; background: #101116; border-radius: 7px; }
.color-inputs input[type=color] { width: 24px; height: 24px; flex-shrink: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.color-inputs input[type=color]::-webkit-color-swatch-wrapper { padding: 0; }
.color-inputs input[type=color]::-webkit-color-swatch { border: 0; border-radius: 4px; }
.color-inputs input[type=text] { background: transparent; border: 0; padding: 0; min-width: 0; width: 100%; color: var(--text); font: 10px 'DM Mono', monospace; }
.color-inputs:has([aria-invalid=true]) { border-color: var(--coral); }
.appearance-status { color: var(--muted); font: 11px 'DM Mono', monospace; margin: 20px 0; min-height: 16px; }
.range-setting { display: flex; align-items: center; gap: 12px; min-width: 210px; }
.range-setting input { width: 160px; accent-color: var(--coral); }
.range-setting output { width: 36px; color: var(--muted); font: 10px 'DM Mono', monospace; }
.range-setting input:disabled { opacity: .4; cursor: not-allowed; }
.settings-note a { color: var(--coral); }
.hero-grid:has(> .now-card:only-child) { grid-template-columns: 1fr; }
.overlay-panel .obs-frame { height: 250px; margin-bottom: 14px; }
.overlay-panel .overlay-song[hidden] { display: none; }
.overlay-artwork-setting { margin-top: 16px; }
.overlay-song .mini-art { position: relative; flex-shrink: 0; overflow: hidden; }
.overlay-thumbnail { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.overlay-thumbnail[hidden] { display: none; }
.overlay-song .mini-art.actual-thumbnail:before, .overlay-song .mini-art.actual-thumbnail:after { display: none; }
@media (max-width: 1100px) { .gradient-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .settings-card { padding: 17px; }
  .setting-row:has(select), .display-heading { flex-wrap: wrap; }
  .setting-select { width: 100%; }
  .color-stops { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .setting-toggle span, .setting-toggle span:after { transition: none; } }
