/* "Spotify" theme (added 2026-09-14) — same mechanism as the other theme-*.css files.
   `html.theme-spotify` (light) / `html.theme-spotify.dark` (Spotify's iconic real dark mode). */

html.theme-spotify:not(.dark) {
    --sp-bg: #f7f7f7;
    --sp-surface: #ffffff;
    --sp-surface-recessed: #f0f0f0;
    --sp-fill: #ebebeb;
    --sp-fill-strong: #dcdcdc;
    --sp-border: #e5e5e5;
    --sp-border-soft: #ededed;
    --sp-border-strong: #cccccc;
    --sp-text-heading: #191414;
    --sp-text-body: #535353;
    --sp-text-faint: #6a6a6a;
    --sp-accent: #1db954;
    --sp-accent-solid: #1db954;
    --sp-accent-hover: #1aa34a;
    --sp-hover-tint: rgba(29, 185, 84, 0.06);
    --sp-hover-tint-strong: rgba(29, 185, 84, 0.1);
    --focus-accent: var(--sp-accent);
    --focus-ring: rgba(29, 185, 84, 0.25);
    color-scheme: light;
}
html.theme-spotify.dark {
    --sp-bg: #121212;
    --sp-surface: #181818;
    --sp-surface-recessed: #0a0a0a;
    --sp-fill: #282828;
    --sp-fill-strong: #3e3e3e;
    --sp-border: #282828;
    --sp-border-soft: #222222;
    --sp-border-strong: #3e3e3e;
    --sp-text-heading: #ffffff;
    --sp-text-body: #b3b3b3;
    --sp-text-faint: #6a6a6a;
    --sp-accent: #1ed760;
    --sp-accent-solid: #1db954;
    --sp-accent-hover: #1ed760;
    --sp-hover-tint: rgba(30, 215, 96, 0.1);
    --sp-hover-tint-strong: rgba(30, 215, 96, 0.16);
    --focus-accent: var(--sp-accent);
    --focus-ring: rgba(30, 215, 96, 0.25);
    color-scheme: dark;
}

/* "Personality" touches (added 2026-09-15) — see theme-instagram.css's comment for the full
   rationale. Spotify's real font is "Spotify Circular" (proprietary, not distributable) —
   Montserrat is the widely-used free stand-in (same geometric-humanist proportions), also
   already loaded for this app's own Google Fonts request. Spotify's Play/Follow buttons are
   iconic fully-rounded pills — border-radius scoped to button/a elements only, same reasoning
   as Instagram's. */
html.theme-spotify { font-family: Montserrat, Helvetica, Arial, sans-serif !important; }
html.theme-spotify button.rounded-lg, html.theme-spotify a.rounded-lg { border-radius: 9999px !important; }
html.theme-spotify body { color: var(--sp-text-heading); }
html.theme-spotify body.bg-white { background-color: var(--sp-bg) !important; background-image: none !important; }
html.theme-spotify .bg-white { background-color: var(--sp-surface) !important; }
html.theme-spotify .bg-zinc-50 { background-color: var(--sp-surface-recessed) !important; }
html.theme-spotify .bg-zinc-100 { background-color: var(--sp-fill) !important; }
html.theme-spotify .bg-zinc-200 { background-color: var(--sp-fill-strong) !important; }
html.theme-spotify .bg-zinc-900 { background-color: var(--sp-accent-solid) !important; }
html.theme-spotify .bg-zinc-700, html.theme-spotify .bg-zinc-800 { background-color: var(--sp-accent-hover) !important; }
html.theme-spotify .bg-zinc-900\/40 { background-color: rgba(0, 0, 0, 0.6) !important; }
html.theme-spotify .bg-zinc-50\/40, html.theme-spotify .bg-zinc-50\/50, html.theme-spotify .bg-zinc-50\/60 { background-color: var(--sp-hover-tint) !important; }
html.theme-spotify .bg-zinc-200\/60 { background-color: var(--sp-hover-tint-strong) !important; }
html.theme-spotify .text-zinc-700, html.theme-spotify .text-zinc-800, html.theme-spotify .text-zinc-900 { color: var(--sp-text-heading) !important; }
html.theme-spotify .text-zinc-500, html.theme-spotify .text-zinc-600 { color: var(--sp-text-body) !important; }
html.theme-spotify .text-zinc-300, html.theme-spotify .text-zinc-400 { color: var(--sp-text-faint) !important; }
html.theme-spotify .placeholder\:text-zinc-400::placeholder { color: var(--sp-text-faint) !important; }
html.theme-spotify .border-zinc-100 { border-color: var(--sp-border-soft) !important; }
html.theme-spotify .divide-zinc-100 > :not([hidden]) ~ :not([hidden]) { border-color: var(--sp-border-soft) !important; }
html.theme-spotify .border-zinc-200 { border-color: var(--sp-border) !important; }
html.theme-spotify .border-zinc-300 { border-color: var(--sp-border-strong) !important; }
html.theme-spotify .border-zinc-400 { border-color: var(--sp-accent) !important; }
html.theme-spotify .border-zinc-900 { border-color: var(--sp-accent-solid) !important; }
html.theme-spotify .ring-zinc-100 { --tw-ring-color: rgba(29, 185, 84, 0.12) !important; }
html.theme-spotify .ring-zinc-500\/10, html.theme-spotify .ring-zinc-900\/10 { --tw-ring-color: rgba(29, 185, 84, 0.2) !important; }
html.theme-spotify .hover\:bg-zinc-50:hover, html.theme-spotify .hover\:bg-zinc-100:hover, html.theme-spotify .hover\:bg-zinc-200:hover,
html.theme-spotify .hover\:bg-zinc-50\/40:hover, html.theme-spotify .hover\:bg-zinc-50\/50:hover, html.theme-spotify .hover\:bg-zinc-50\/60:hover { background-color: var(--sp-hover-tint) !important; }
html.theme-spotify .hover\:bg-zinc-200\/60:hover { background-color: var(--sp-hover-tint-strong) !important; }
html.theme-spotify .has-\[\:checked\]\:bg-zinc-50:has(:checked), html.theme-spotify .has-\[\:checked\]\:bg-zinc-100:has(:checked) { background-color: var(--sp-hover-tint) !important; }
html.theme-spotify .capa-nc-group:hover td { background-color: var(--sp-hover-tint-strong) !important; }
html.theme-spotify .capa-nc-group:hover td:first-child,
html.theme-spotify tbody:not(.capa-nc-group) tr:not([class*="hover:bg"]):hover td:first-child { box-shadow: inset 3px 0 0 0 var(--sp-accent) !important; }
html.theme-spotify tbody:not(.capa-nc-group) tr:not([class*="hover:bg"]):hover { background-color: var(--sp-hover-tint-strong) !important; }
html.theme-spotify .hover\:bg-zinc-700:hover, html.theme-spotify .hover\:bg-zinc-800:hover { background-color: var(--sp-accent-hover) !important; }
html.theme-spotify .hover\:text-zinc-600:hover { color: var(--sp-text-body) !important; }
html.theme-spotify .hover\:text-zinc-700:hover, html.theme-spotify .hover\:text-zinc-800:hover, html.theme-spotify .hover\:text-zinc-900:hover { color: var(--sp-text-heading) !important; }
html.theme-spotify .hover\:border-zinc-400:hover { border-color: var(--sp-accent) !important; }
html.theme-spotify .hover\:border-zinc-900:hover { border-color: var(--sp-accent-solid) !important; }
html.theme-spotify .focus\:border-zinc-400:focus { border-color: var(--sp-accent) !important; }
html.theme-spotify .focus\:ring-zinc-100:focus { --tw-ring-color: rgba(29, 185, 84, 0.15) !important; }
html.theme-spotify .focus\:ring-zinc-900:focus { --tw-ring-color: rgba(29, 185, 84, 0.25) !important; }
html.theme-spotify input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
html.theme-spotify select, html.theme-spotify textarea { background-color: var(--sp-surface) !important; color: var(--sp-text-heading) !important; border-color: var(--sp-border) !important; }
html.theme-spotify input::placeholder, html.theme-spotify textarea::placeholder { color: var(--sp-text-faint) !important; }
html.theme-spotify input[type="checkbox"], html.theme-spotify input[type="radio"] { accent-color: var(--sp-accent-solid); }
html.theme-spotify.dark input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); }
html.theme-spotify input[type="date"], html.theme-spotify input[type="time"], html.theme-spotify input[type="datetime-local"],
html.theme-spotify input[type="month"], html.theme-spotify input[type="week"] { color-scheme: inherit; }
html.theme-spotify ::-webkit-scrollbar-track { background: transparent; }
html.theme-spotify ::-webkit-scrollbar-thumb { background: var(--sp-border-strong); border-radius: 999px; }
html.theme-spotify ::-webkit-scrollbar-thumb:hover { background: var(--sp-accent); }
html.theme-spotify.dark .bg-amber-50, html.theme-spotify.dark .bg-amber-100 { background-color: rgba(245, 158, 11, 0.14) !important; }
html.theme-spotify.dark .text-amber-600, html.theme-spotify.dark .text-amber-700, html.theme-spotify.dark .text-amber-800 { color: #fbbf24 !important; }
html.theme-spotify.dark .bg-blue-50, html.theme-spotify.dark .bg-blue-100 { background-color: rgba(59, 130, 246, 0.14) !important; }
html.theme-spotify.dark .text-blue-600, html.theme-spotify.dark .text-blue-700, html.theme-spotify.dark .text-blue-800 { color: #60a5fa !important; }
html.theme-spotify.dark .bg-emerald-50, html.theme-spotify.dark .bg-emerald-100 { background-color: rgba(30, 215, 96, 0.16) !important; }
html.theme-spotify.dark .text-emerald-600, html.theme-spotify.dark .text-emerald-700, html.theme-spotify.dark .text-emerald-800 { color: #4ade80 !important; }
html.theme-spotify.dark .bg-red-50, html.theme-spotify.dark .bg-red-100 { background-color: rgba(239, 68, 68, 0.14) !important; }
html.theme-spotify.dark .text-red-600, html.theme-spotify.dark .text-red-700 { color: #f87171 !important; }
html.theme-spotify.dark .bg-violet-50 { background-color: rgba(139, 92, 246, 0.14) !important; }
html.theme-spotify.dark .text-violet-600, html.theme-spotify.dark .text-violet-700 { color: #a78bfa !important; }
html.theme-spotify.dark .bg-sky-50 { background-color: rgba(59, 130, 246, 0.14) !important; }
html.theme-spotify.dark .text-sky-600 { color: #60a5fa !important; }
html.theme-spotify.dark .bg-teal-50 { background-color: rgba(20, 184, 166, 0.14) !important; }
html.theme-spotify.dark .text-teal-600, html.theme-spotify.dark .text-teal-700 { color: #2dd4bf !important; }
html.theme-spotify.dark .bg-rose-50 { background-color: rgba(244, 63, 94, 0.14) !important; }
html.theme-spotify.dark .text-rose-600 { color: #fb7185 !important; }
html.theme-spotify.dark .bg-orange-50 { background-color: rgba(249, 115, 22, 0.14) !important; }
html.theme-spotify.dark .text-orange-600, html.theme-spotify.dark .text-orange-700 { color: #fb923c !important; }
html.theme-spotify.dark .bg-indigo-50 { background-color: rgba(99, 102, 241, 0.14) !important; }
html.theme-spotify.dark .text-indigo-600 { color: #818cf8 !important; }
