:root{--bg-base:#121212;--bg-surface:#181818;--bg-elevated:#1f1f1f;--bg-card:#252525;--bg-card-alt:#272727;--text-primary:#fff;--text-secondary:#b3b3b3;--text-near-white:#cbcbcb;--accent-green:#1ed760;--accent-green-dark:#1db954;--semantic-red:#f3727f;--semantic-orange:#ffa42b;--semantic-blue:#539df5;--border-gray:#4d4d4d;--border-light:#7c7c7c;--shadow-heavy:#00000080 0px 8px 24px;--shadow-medium:#0000004d 0px 8px 8px;--font-family:"SpotifyMixUI", "CircularSp-Arab", "CircularSp-Hebr", "CircularSp-Cyrl", "CircularSp-Grek", "CircularSp-Deva", "Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic", system-ui, -apple-system, sans-serif;--font-title:"SpotifyMixUITitle", "CircularSp-Arab", "CircularSp-Hebr", "CircularSp-Cyrl", "CircularSp-Grek", "CircularSp-Deva", "Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic", system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-base);font-family:var(--font-family);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background-color:var(--bg-base);min-width:320px;min-height:100vh;margin:0}a{color:var(--text-secondary);text-decoration:none;transition:color .2s}a:hover{color:var(--text-primary)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:3px solid var(--bg-base);background:#4a4a4a;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#5a5a5a}.app-layout{background:var(--bg-base);min-height:100vh}.app-header{z-index:100;-webkit-backdrop-filter:blur(16px);background:#121212f2;border-bottom:1px solid #ffffff0d;align-items:center;height:64px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.app-logo{font-family:var(--font-title);color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.app-logo-icon{background:var(--accent-green);color:#000;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.app-content{max-width:1600px;margin:0 auto;padding:80px 24px 32px}.app-section{margin-bottom:32px}.section-title{font-family:var(--font-title);color:var(--text-primary);margin:0 0 16px;font-size:24px;font-weight:700}.section-subtitle{color:var(--text-secondary);margin:0 0 24px;font-size:14px;font-weight:400}.sp-card{background:var(--bg-surface);border-radius:8px;padding:24px;transition:background .2s}.sp-card:hover{background:var(--bg-card)}.sp-table{background:0 0!important}.sp-table .ant-table{color:var(--text-primary);background:0 0!important}.sp-table .ant-table-thead>tr>th{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)!important;background:0 0!important;border-bottom:1px solid #ffffff1a!important;padding:12px 16px!important;font-size:12px!important;font-weight:700!important}.sp-table .ant-table-tbody>tr>td{font-size:14px;color:var(--text-primary)!important;background:0 0!important;border-bottom:1px solid #ffffff0f!important;padding:12px 16px!important}.sp-table .ant-table-tbody>tr:hover>td{background:#ffffff0f!important}.sp-table .ant-table-tbody>tr{cursor:pointer}.track-art{object-fit:cover;background:var(--bg-elevated);border-radius:4px;width:40px;height:40px}.track-cell{align-items:center;gap:12px;display:flex}.track-cell-info{flex-direction:column;gap:2px;display:flex}.track-cell-name{color:var(--text-primary);font-size:14px;font-weight:400}.track-cell-artist{color:var(--text-secondary);font-size:12px}.track-row:hover .track-cell-name{color:var(--accent-green)}.sp-alert{background:var(--bg-elevated)!important;border:1px solid var(--border-gray)!important;color:var(--text-primary)!important;border-radius:8px!important}.sp-alert .ant-alert-message{color:var(--text-primary)!important;font-weight:700!important}.sp-alert .ant-alert-description{color:var(--text-secondary)!important}.sp-spin .ant-spin-dot-item{background-color:var(--accent-green)!important}.kpi-card{cursor:default}.kpi-card:hover{background:#1f1f1f!important}.rediscover-container{padding:20px 24px}.rediscover-list{flex-direction:column;gap:4px;display:flex}.rediscover-item{border-radius:8px;align-items:center;gap:14px;padding:10px 8px;transition:background .2s;display:flex}.rediscover-item:last-child{padding-bottom:2px}.rediscover-item:hover{background:#ffffff0d}.rediscover-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rediscover-track-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:400;overflow:hidden}.rediscover-track-name:hover{color:var(--accent-green)}.rediscover-artist-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.rediscover-album-name{color:#7c7c7c;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.rediscover-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.rediscover-last-played{color:#7c7c7c;font-size:11px}.chart-container{background:var(--bg-surface);border-radius:8px;padding:24px}.chart-container.chart-fixed-height{min-height:400px}.chart-loading{justify-content:center;align-items:center;height:400px;display:flex}
