:root{--color-bg-deep:#07071a;--color-bg:#0e0e28;--color-bg-elevated:#161636;--color-surface:#161636;--color-surface-hover:#242450;--color-card:#1616348c;--color-card-solid:#1e1e42;--color-glass:#1616348c;--color-glass-heavy:#0e0e26e0;--color-accent:#ec4141;--color-accent-hover:#ff5252;--color-accent-soft:#ec41411f;--color-accent-glow:#ec414159;--color-text:#f0f0f8;--color-text-secondary:#88a;--color-text-tertiary:#555570;--color-border:#ffffff12;--color-border-light:#ffffff1f;--color-divider:#ffffff0a;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--color-accent-glow);--shadow-card:0 4px 24px #00000040;--glass-blur:blur(24px);--glass-blur-heavy:blur(40px);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--topnav-height:64px;--tabbar-height:44px;--playbar-height:72px;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg-deep);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg-deep);color:var(--color-text);margin:0;overflow:hidden}#root{width:100%;height:100vh;overflow:hidden}.app-layout{background:var(--color-bg-deep);flex-direction:column;height:100dvh;display:flex}.topnav{min-height:var(--topnav-height);padding-top:env(safe-area-inset-top,0px);flex-shrink:0}.app-main{-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}::selection{background:var(--color-accent-soft);color:var(--color-text)}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-weight:600}a{color:var(--color-accent);transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.ant-btn-primary{border-radius:12px!important}.ant-btn-primary:hover{box-shadow:var(--shadow-glow)!important}.ant-btn-text:hover{background:#ffffff0d!important}.ant-card{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg)!important}.ant-card-body{padding:24px!important}.ant-table-thead>tr>th{text-transform:uppercase;letter-spacing:.5px;font-size:12px!important}.ant-table-tbody>tr:hover>td{background:#ec41410f!important}.ant-modal-content{-webkit-backdrop-filter:var(--glass-blur-heavy);backdrop-filter:var(--glass-blur-heavy);box-shadow:var(--shadow-lg);border-radius:var(--radius-xl)!important}.ant-tag{border:none!important}.ant-slider-rail{height:4px!important}.ant-slider-track{background:var(--color-accent)!important;height:4px!important}.ant-slider-handle{border-color:var(--color-accent)!important;width:12px!important;height:12px!important;margin-top:-4px!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector{border-radius:12px!important}.ant-upload-drag,.ant-popover-inner{border-radius:var(--radius-md)!important}.ant-message-notice-content{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-md)}.ant-drawer-header{border-bottom:1px solid var(--color-border)!important}.anticon svg{display:inline-block!important}.anticon{line-height:0;display:inline-flex!important}@media (width<=768px){:root{--topnav-height:56px;--playbar-height:92px;--tabbar-height:40px}.ant-table-thead>tr>th{padding:8px!important;font-size:11px!important}.ant-table-tbody>tr>td{padding:8px!important;font-size:13px!important}.ant-card-body{padding:16px!important}.ant-modal{max-width:100vw!important;margin:0!important;padding:0!important;top:0!important}.ant-modal-content{min-height:100vh;border-radius:0!important}.ant-modal.confirm-modal .ant-modal-content{min-height:auto}.ant-upload-drag{padding:8px!important}.ant-btn,.ant-switch,.ant-select,[role=button],.touch-target{min-height:44px}.ant-btn-sm{min-height:36px!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker{height:44px!important;font-size:16px!important}.ant-input-textarea textarea{font-size:16px!important}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-modal-body{padding:16px 12px!important}.ant-card{min-width:0}.ant-pagination .ant-pagination-item,.ant-pagination .ant-pagination-prev,.ant-pagination .ant-pagination-next{min-width:44px;min-height:44px;line-height:44px}.ant-space-horizontal>.ant-space-item{margin-right:8px!important}.mobile-artist{display:inline}.login-card{border-radius:20px!important;padding:32px 20px 28px!important}.login-card .login-form .ant-form-item{margin-bottom:16px!important}.login-card .ant-input-affix-wrapper{padding:0 11px!important}.login-card .ant-input-affix-wrapper .ant-input{height:auto!important}}@media (width>=769px){.mobile-artist{display:none}}@supports (padding-bottom:env(safe-area-inset-bottom)){body{padding-bottom:env(safe-area-inset-bottom)}}@supports (-webkit-overflow-scrolling:touch){.ant-modal-content{max-height:90vh;overflow-y:auto}}@media (hover:none) and (pointer:coarse){*{-webkit-tap-highlight-color:transparent}.ant-btn{min-height:36px}a,button,[role=button]{touch-action:manipulation}}img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pulseGlow{0%,to{box-shadow:0 0 20px var(--color-accent-glow)}50%{box-shadow:0 0 40px var(--color-accent-glow)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes modalIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.playlist-card-item:hover .card-play-btn{opacity:1!important;transform:translateY(0)!important}.song-row:hover .row-action-btn,div:hover>.row-action-btn{opacity:1!important}@media (hover:none) and (pointer:coarse){.row-action-btn{opacity:1!important}}div:hover>.add-hint{opacity:1!important}
