
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}*{-webkit-backface-visibility:hidden;backface-visibility:hidden}.glass{background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));border:var(--border-glass);will-change:transform;transform:translateZ(0)}html,body{height:100%;font-family:var(--font-family);background:#06060a;background-attachment:fixed;color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;padding-bottom:120px}:root{--primary:#d4a030;--primary-hover:#a07d08;--primary-active:#8b6508;--primary-disabled:#f5c04a;--primary-glow:rgba(212,160,48,0.25);--primary-gradient:linear-gradient(135deg,#d4a030 0%,#b8860b 100%);--bg-primary:#06060a;--bg-secondary:#0d0d15;--bg-card-solid:#181828;--bg-card-glass:rgba(18,18,28,0.45);--bg-overlay:rgba(0,0,0,0.6);--bg-player-glass:rgba(13,13,21,0.55);--bg-nav-glass:rgba(13,13,21,0.5);--border-glass:1px solid rgba(255,255,255,0.1);--border-solid:1px solid rgba(255,255,255,0.06);--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-tertiary:#64748b;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--info:#3b82f6;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.02);--shadow-md:0 4px 12px -1px rgba(0,0,0.05),0 2px 4px -1px rgba(0,0,0.02);--shadow-lg:0 10px 30px -3px rgba(0,0,0.07),0 4px 6px -2px rgba(0,0,0.03);--shadow-xl:0 20px 40px -6px rgba(0,0,0.1);--shadow-player:0 -4px 24px rgba(0,0,0.06);--transition-fast:0.15s cubic-bezier(0.25,0.1,0.25,1);--transition-normal:0.25s cubic-bezier(0.25,0.8,0.25,1);--transition-slow:0.4s cubic-bezier(0.25,0.8,0.25,1);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','Pingfang SC','Microsoft YaHei',sans-serif;--default-cover:url('https://bing.img.run/rand.php');--app-download-url:'http://api.jdynb.xyz:6400/parser?url=https://jczz.lanzoue.com/i70Z63m9kg3e&pwd=7mcw';--app-share-url:'https://polan-tool.pages.dev/';--glass-blur-desktop:16px;--glass-blur-mobile:12px;--glass-saturate:130%}.theme-dark{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-card-solid:#1e293b;--bg-card-glass:rgba(30,41,59,0.72);--bg-overlay:rgba(0,0,0,0.62);--bg-player-glass:rgba(30,41,59,0.88);--bg-nav-glass:rgba(30,41,0.82);--border-glass:1px solid rgba(255,255,255,0.12);--border-solid:1px solid rgba(51,65,85,0.65);--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-tertiary:#64748b;--shadow-player:0 -4px 24px rgba(0,0,0.15)}@media (max-width:768px){:root{--glass-blur-desktop:var(--glass-blur-mobile);--glass-saturate:150%;--radius-lg:16px;--radius-xl:22px}}.container{max-width:1000px;margin:0 auto;padding:24px 16px;min-height:100vh;display:flex;flex-direction:column;gap:24px}.scroll-fade-in{opacity:0;transform:translateY(30px);transition:opacity 0.8s cubic-bezier(0.25,0.1,0.25,1),transform 0.8s cubic-bezier(0.25,0.1,0.25,1);will-change:opacity,transform;animation:scrollFadeFallback 0.8s ease-out 3s forwards}.scroll-fade-in.is-visible{opacity:1;transform:translateY(0);animation:none}@keyframes scrollFadeFallback{to{opacity:1;transform:translateY(0)}}.scroll-fade-in.stagger-1{transition-delay:0.1s}.scroll-fade-in.stagger-2{transition-delay:0.2s}.scroll-fade-in.stagger-3{transition-delay:0.3s}.scroll-fade-in.stagger-4{transition-delay:0.4s}.parallax{will-change:transform;transition:transform 0.1s ease-out}.parallax-bg{background-attachment:fixed;background-position:center;background-repeat:no-repeat;background-size:cover;position:relative}.hover-float{transition:transform 0.3s ease,box-shadow 0.3s ease;will-change:transform,box-shadow}.hover-float:hover{transform:translateY(-6px);box-shadow:0 12px 24px rgba(0,0,0,0.12)}.hover-scale{transition:transform 0.3s ease;will-change:transform}.hover-scale:hover{transform:scale(1.03)}.header{text-align:center;padding:40px 24px 36px;border-radius:var(--radius-xl);background:rgba(255,255,255,0.6);backdrop-filter:blur(6px) saturate(200%) brightness(1.03);-webkit-backdrop-filter:blur(6px) saturate(200%) brightness(1.03);border:1px solid rgba(255,255,255,0.5);box-shadow:0 16px 48px -12px rgba(0,0,0,0.08),0 4px 12px -4px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,0.7),inset 0 -1px 0 rgba(0,0,0,0.02);transform:translateZ(0);position:relative;overflow:hidden}.header::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 20%,rgba(212,160,48,0.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(184,134,11,0.04) 0%,transparent 50%);pointer-events:none;animation:none}@keyframes headerShimmer{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(2%,1%) rotate(1deg)}}.theme-dark .header{background:rgba(15,23,42,0.6);border:1px solid rgba(255,255,255,0.06);box-shadow:0 16px 48px -12px rgba(0,0,0,0.4),0 4px 12px -4px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.04)}.theme-dark .header::before{background:radial-gradient(ellipse at 30% 20%,rgba(212,160,48,0.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(184,134,11,0.06) 0%,transparent 50%)}.brand-icon{width:76px;height:76px;object-fit:contain;border-radius:20px;border:2px solid rgba(255,255,255,0.5);cursor:pointer;user-select:none;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);box-shadow:0 8px 24px -4px rgba(0,0,0,0.08),0 2px 6px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,0.4);animation:none;position:relative;z-index:1}.brand-icon:hover{animation-play-state:paused;transform:scale(1.08) translateY(-4px) rotate(1deg);box-shadow:0 16px 40px -8px rgba(212,160,48,0.15),0 4px 12px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.5);border-color:rgba(212,160,48,0.3)}.theme-dark .brand-icon{border-color:rgba(255,255,255,0.1);box-shadow:0 8px 24px -4px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.06)}.theme-dark .brand-icon:hover{border-color:rgba(212,160,48,0.4);box-shadow:0 16px 40px -8px rgba(212,160,48,0.2),0 4px 12px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.08)}@keyframes float-icon{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}.brand-name{font-size:28px;font-weight:800;letter-spacing:-0.5px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1;line-height:1.2}.theme-dark .brand-name{background:linear-gradient(135deg,#f8fafc 0%,#f5c04a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-desc{font-size:13px;font-weight:400;color:var(--text-tertiary);letter-spacing:0.5px;position:relative;z-index:1;margin-top:4px}.header-brand{display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;z-index:1}.hitokoto{padding:16px 50px 16px 20px;background:rgba(241,245,249,0.7);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border-left:3px solid var(--primary);border-radius:var(--radius-md);border:var(--border-solid);text-align:left;position:relative;user-select:none}.theme-dark .hitokoto{background:rgba(30,41,59,0.7)}.hitokoto-text{font-size:15px;color:var(--text-primary);margin-bottom:4px;line-height:1.5}.hitokoto-source{font-size:13px;color:var(--text-tertiary);text-align:right}.hitokoto-refresh{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:var(--radius-full);background:rgba(255,255,255,0.7);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.theme-dark .hitokoto-refresh{background:rgba(30,41,59,0.7)}.hitokoto-refresh:hover{background:rgba(255,255,255,0.9);transform:translateY(-50%) rotate(180deg)}.hitokoto-refresh:active{transform:translateY(-50%) scale(0.95)}.header-info-row{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap}.header-info-row .hitokoto{flex:1 1 280px;min-width:260px}.weather-widget{flex:0 0 auto;min-width:200px;padding:14px 18px;background:rgba(241,245,249,0.7);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:var(--border-solid);border-left:3px solid var(--primary);border-radius:var(--radius-md);display:flex;align-items:center;gap:12px;position:relative;user-select:none}.theme-dark .weather-widget{background:rgba(30,41,59,0.7)}.weather-widget.is-loading .weather-main{opacity:0.5}.weather-icon{font-size:30px;line-height:1}.weather-icon i{color:var(--primary)}.weather-main{display:flex;flex-direction:column;gap:2px}.weather-temp{font-size:19px;font-weight:700;color:var(--text-primary);line-height:1.1}.weather-desc{font-size:12px;color:var(--text-secondary)}.weather-loc{font-size:12px;color:var(--text-tertiary);display:flex;align-items:center;gap:4px}.weather-refresh{position:absolute;right:10px;top:10px;width:26px;height:26px;border-radius:var(--radius-full);background:rgba(255,255,255,0.7);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);color:var(--text-secondary);font-size:11px}.theme-dark .weather-refresh{background:rgba(30,41,59,0.7)}.weather-refresh:hover{background:rgba(255,255,255,0.95);transform:rotate(180deg)}@media (max-width:520px){.header-info-row{flex-direction:column}.header-info-row .hitokoto,.weather-widget{width:100%;min-width:0;flex-basis:auto !important}.hitokoto{padding:8px 36px 8px 12px !important}.hitokoto-text{font-size:12.5px !important;line-height:1.35 !important;margin-bottom:1px !important}.hitokoto-source{font-size:10.5px !important}.hitokoto-refresh{width:26px;height:26px;right:6px;font-size:11px}}.translate-box{display:flex;flex-direction:column;gap:14px}.translate-lang-row{display:flex;align-items:center;gap:10px}.tr-select{flex:1;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='3'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.tr-swap{flex:0 0 auto;width:40px;height:40px;border-radius:var(--radius-full);border:var(--border-solid);background:var(--bg-card-glass);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.tr-swap:hover{color:var(--primary);transform:rotate(180deg)}.translate-area-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tr-textarea{width:100%;resize:vertical;min-height:120px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:15px;line-height:1.6;font-family:inherit}.tr-textarea:focus{outline:none;border-color:var(--primary)}.tr-output{background:rgba(212,160,48,0.08)}.tr-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.tr-count,.tr-hint{font-size:12px;color:var(--text-tertiary)}.tr-clear{background:none;border:none;color:var(--text-tertiary);font-size:12px;cursor:pointer;padding:2px 6px}.tr-clear:hover{color:var(--primary)}.tr-go{align-self:flex-start;min-width:140px}.speedtest-box{display:flex;flex-direction:column;align-items:center;gap:22px}.sp-gauge-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}.sp-gauge{width:190px;height:190px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--primary) 0deg,var(--bg-card-glass) 0deg);position:relative;transition:background 0.3s ease}.sp-gauge::before{content:'';position:absolute;inset:14px;border-radius:50%;background:var(--bg-card-solid)}.sp-gauge-value{font-size:38px;font-weight:800;color:var(--text-primary);position:relative;z-index:1;line-height:1}.sp-gauge-unit{font-size:13px;color:var(--text-secondary);position:relative;z-index:1;margin-top:4px}.sp-gauge-label{font-size:14px;color:var(--text-secondary)}.sp-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%}.sp-metric{display:flex;align-items:center;gap:10px;padding:14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid)}.sp-metric i{font-size:20px;color:var(--primary)}.sp-metric div{display:flex;flex-direction:column}.sp-metric span{font-size:18px;font-weight:700;color:var(--text-primary)}.sp-metric small{font-size:11px;color:var(--text-tertiary)}.sp-go{min-width:200px}@media (max-width:560px){.translate-area-row{grid-template-columns:1fr}.sp-metrics{grid-template-columns:repeat(2,1fr)}}.hotsearch-box{display:flex;flex-direction:column;gap:14px}.hs-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.hs-tab{flex:0 0 auto;padding:8px 16px;border-radius:var(--radius-full);cursor:pointer;background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:13px;transition:var(--transition-fast);white-space:nowrap}.hs-tab:hover{color:var(--text-primary)}.hs-tab.active{background:var(--primary-gradient);color:#fff;border-color:transparent}.hs-toolbar{display:flex;align-items:center;justify-content:space-between}.hs-toolbar .status{margin:0}.hs-refresh{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:13px;display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--radius-sm)}.hs-refresh:hover{color:var(--primary)}.hs-refresh.spinning i{animation:fa-spin 0.8s linear infinite}.hs-list{display:flex;flex-direction:column;gap:8px}.hs-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);text-decoration:none;color:var(--text-primary);transition:var(--transition-fast)}.hs-item:hover{transform:translateX(4px);border-color:var(--primary);background:rgba(212,160,48,0.1)}.hs-rank{flex:0 0 24px;width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--bg-card-solid);color:var(--text-tertiary)}.hs-rank.r1{background:#ef4444;color:#fff}.hs-rank.r2{background:#f97316;color:#fff}.hs-rank.r3{background:#f59e0b;color:#fff}.hs-title{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hs-hot{font-size:12px;color:var(--text-tertiary);flex:0 0 auto}.hs-empty{text-align:center;padding:40px 0;color:var(--text-tertiary)}.hs-empty i{font-size:32px;display:block;margin-bottom:10px;opacity:0.5}.news60s-box{display:flex;flex-direction:column;gap:14px}.ns-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.ns-meta .badge{padding:3px 10px;border-radius:var(--radius-full);background:var(--primary-gradient);color:#fff;font-size:12px}.ns-meta .lunar{color:var(--text-tertiary)}.ns-news{display:flex;flex-direction:column;gap:8px}.ns-item{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);font-size:14px;line-height:1.6}.ns-item .num{flex:0 0 22px;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.ns-tip{padding:12px 16px;border-radius:var(--radius-md);background:rgba(212,160,48,0.08);border-left:3px solid var(--primary);font-size:14px;color:var(--text-secondary)}.ns-actions{display:flex;gap:10px}.history-box{display:flex;flex-direction:column;gap:14px}.hist-date{font-size:18px;font-weight:700;color:var(--primary)}.hist-list{display:flex;flex-direction:column;gap:8px}.hist-item{display:flex;gap:12px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);text-decoration:none;color:var(--text-primary);transition:var(--transition-fast)}.hist-item:hover{transform:translateX(4px);border-color:var(--primary)}.hist-year{flex:0 0 auto;font-size:18px;font-weight:800;color:var(--primary);min-width:56px}.hist-content{flex:1}.hist-title{font-size:14px;font-weight:600;margin-bottom:4px}.hist-desc{font-size:12px;color:var(--text-tertiary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hist-tag{flex:0 0 auto;font-size:11px;padding:2px 8px;border-radius:var(--radius-full);align-self:flex-start;margin-top:3px}.hist-tag.birth{background:#dcfce7;color:#15803d}.hist-tag.death{background:#fee2e2;color:#b91c1c}.hist-tag.event{background:#dbeafe;color:#a07d08}.theme-dark .hist-tag.birth{background:rgba(34,197,94,0.2)}.theme-dark .hist-tag.death{background:rgba(239,68,68,0.2)}.theme-dark .hist-tag.event{background:rgba(59,130,246,0.2)}.moyu-box{display:flex;flex-direction:column;gap:16px}.my-date-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.my-date-big{font-size:28px;font-weight:800;color:var(--primary)}.my-date-sub{font-size:13px;color:var(--text-secondary)}.my-status{display:flex;gap:8px;flex-wrap:wrap}.my-chip{padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600}.my-chip.weekend{background:#dcfce7;color:#15803d}.my-chip.workday{background:#fee2e2;color:#b91c1c}.my-chip.holiday{background:#fef3c7;color:#b45309}.theme-dark .my-chip.weekend{background:rgba(34,197,94,0.2)}.theme-dark .my-chip.workday{background:rgba(239,68,68,0.2)}.theme-dark .my-chip.holiday{background:rgba(245,158,11,0.2)}.my-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.my-prog-card{padding:14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);text-align:center}.my-prog-card .label{font-size:12px;color:var(--text-tertiary);margin-bottom:6px}.my-prog-bar{height:6px;border-radius:3px;background:var(--bg-card-solid);overflow:hidden;margin:8px 0}.my-prog-fill{height:100%;border-radius:3px;background:var(--primary-gradient);transition:width 0.6s ease}.my-prog-card .pct{font-size:18px;font-weight:700;color:var(--primary)}.my-countdown{display:flex;flex-direction:column;gap:8px}.my-cd-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid)}.my-cd-item .name{font-size:14px;color:var(--text-primary)}.my-cd-item .days{font-size:16px;font-weight:700;color:var(--primary)}.my-quote{padding:14px 16px;border-radius:var(--radius-md);background:rgba(212,160,48,0.08);border-left:3px solid var(--primary);font-size:14px;color:var(--text-secondary);font-style:italic}@media (max-width:480px){.my-progress-grid{grid-template-columns:1fr}}.joke-box,.loveword-box{display:flex;flex-direction:column;gap:16px}.joke-card,.lw-card{padding:24px;border-radius:var(--radius-lg);background:var(--bg-card-glass);border:var(--border-solid);min-height:120px;display:flex;align-items:center;justify-content:center}.joke-text,.lw-text{font-size:17px;line-height:1.8;text-align:center;color:var(--text-primary)}.lw-card{background:rgba(236,72,153,0.06);border-color:rgba(236,72,153,0.3)}.lw-card .lw-text::before{content:'\f004';font-family:'Font Awesome 6 Free';font-weight:900;display:block;font-size:28px;color:#ec4899;margin-bottom:12px}.joke-actions,.lw-actions{display:flex;gap:10px}.dwm-box{display:flex;flex-direction:column;gap:14px}.dwm-input-row{display:flex;gap:10px}.dwm-input{flex:1;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}.dwm-input:focus{outline:none;border-color:var(--primary)}.dwm-tips{font-size:13px;color:var(--text-tertiary)}.dwm-result{display:none}.dwm-result.show{display:flex;flex-direction:column;gap:14px}.dwm-video-info{display:flex;gap:12px;padding:14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid)}.dwm-cover{width:100px;height:130px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.dwm-info{flex:1;display:flex;flex-direction:column;gap:6px}.dwm-desc{font-size:14px;line-height:1.5;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dwm-author{font-size:12px;color:var(--text-tertiary)}.dwm-links{display:flex;gap:10px;flex-wrap:wrap}.dwm-link{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--radius-md);background:var(--primary-gradient);color:#fff;text-decoration:none;font-size:13px;font-weight:600;transition:var(--transition-fast)}.dwm-link:hover{transform:translateY(-2px)}.dwm-link.secondary{background:var(--bg-card-glass);color:var(--text-primary);border:var(--border-solid)}.lottery-box{display:flex;flex-direction:column;gap:14px}.lot-tabs{display:flex;gap:8px}.lot-tab{padding:8px 20px;border-radius:var(--radius-full);cursor:pointer;background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:14px;font-weight:600;transition:var(--transition-fast)}.lot-tab:hover{color:var(--text-primary)}.lot-tab.active{background:var(--primary-gradient);color:#fff;border-color:transparent}.lot-result{display:flex;flex-direction:column;gap:12px}.lot-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lot-issue{font-size:14px;color:var(--text-secondary)}.lot-date{font-size:13px;color:var(--text-tertiary)}.lot-balls{display:flex;gap:8px;flex-wrap:wrap}.lot-ball{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff}.lot-ball.red{background:linear-gradient(135deg,#ef4444,#dc2626)}.lot-ball.blue{background:linear-gradient(135deg,#3b82f6,#d4a030)}.lot-prize{padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);font-size:13px;color:var(--text-secondary)}.lot-prize strong{color:var(--primary)}.phone-box{display:flex;flex-direction:column;gap:14px}.phone-input-row{display:flex;gap:10px}.phone-input{flex:1;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:16px;font-family:inherit;letter-spacing:1px}.phone-input:focus{outline:none;border-color:var(--primary)}.phone-result{display:none}.phone-result.show{display:flex;flex-direction:column;gap:8px}.phone-row{display:flex;justify-content:space-between;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid)}.phone-row .key{font-size:13px;color:var(--text-tertiary)}.phone-row .val{font-size:15px;font-weight:600;color:var(--text-primary)}.trash-box{display:flex;flex-direction:column;gap:14px}.trash-input-row{display:flex;gap:10px}.trash-input{flex:1;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}.trash-input:focus{outline:none;border-color:var(--primary)}.trash-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.trash-cat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);cursor:pointer;transition:var(--transition-fast);font-size:12px;color:var(--text-secondary);text-align:center}.trash-cat:hover{color:var(--text-primary)}.trash-cat i{font-size:22px}.trash-cat[data-type="recyclable"] i{color:#3b82f6}.trash-cat[data-type="hazardous"] i{color:#ef4444}.trash-cat[data-type="wet"] i{color:#22c55e}.trash-cat[data-type="dry"] i{color:#6b7280}.trash-result{display:none}.trash-result.show{display:block}.trash-result-card{padding:16px 20px;border-radius:var(--radius-md);border:var(--border-solid)}.trash-result-card .cat-name{font-size:18px;font-weight:700;margin-bottom:8px}.trash-result-card .cat-desc{font-size:13px;color:var(--text-secondary);line-height:1.5}.trash-result-card[data-cat="recyclable"]{background:rgba(59,130,246,0.1);border-color:#3b82f6}.trash-result-card[data-cat="recyclable"] .cat-name{color:#3b82f6}.trash-result-card[data-cat="hazardous"]{background:rgba(239,68,68,0.1);border-color:#ef4444}.trash-result-card[data-cat="hazardous"] .cat-name{color:#ef4444}.trash-result-card[data-cat="wet"]{background:rgba(34,197,94,0.1);border-color:#22c55e}.trash-result-card[data-cat="wet"] .cat-name{color:#22c55e}.trash-result-card[data-cat="dry"]{background:rgba(107,114,128,0.1);border-color:#6b7280}.trash-result-card[data-cat="dry"] .cat-name{color:#6b7280}@media (max-width:480px){.trash-cats{grid-template-columns:repeat(2,1fr)}}.tool{display:none;flex-direction:column;gap:20px;animation:fadeIn 0.3s ease-out}.tool.active{display:flex}.tool-header{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border)}.tool-header i{font-size:20px;color:var(--primary)}.tool-header h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.tools-stats-bar{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap}.tools-stat-item{flex:1;min-width:100px;background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));border:var(--border-glass);border-radius:var(--radius-md);padding:14px 16px;text-align:center;transition:all 0.35s cubic-bezier(0.25,0.8,0.25,1)}.tools-stat-item:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.08);border-color:var(--primary)}.tools-stat-item .stat-icon{font-size:20px;margin-bottom:6px;display:block;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tools-stat-item .stat-value{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.2}.tools-stat-item .stat-label{font-size:11px;color:var(--text-secondary);font-weight:500;letter-spacing:0.5px}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(40px) scale(0.95)}60%{opacity:1;transform:translateY(-4px) scale(1.01)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardGlowPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}50%{box-shadow:0 0 0 8px rgba(255,255,255,0.06)}}@keyframes shimmerSweep{0%{transform:translateX(-100%) skewX(-15deg)}100%{transform:translateX(200%) skewX(-15deg)}}@keyframes iconFloat{0%,100%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-4px) rotate(2deg)}75%{transform:translateY(2px) rotate(-2deg)}}@keyframes orbitDeco{0%{transform:rotate(0deg) translateX(0)}50%{transform:rotate(180deg) translateX(4px)}100%{transform:rotate(360deg) translateX(0)}}.tools-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.tools-hub-card{border-radius:var(--radius-lg);padding:28px 24px;color:#fff;cursor:pointer;position:relative;overflow:hidden;transition:all 0.4s cubic-bezier(0.25,0.8,0.25,1);min-height:150px;display:flex;flex-direction:column;justify-content:space-between;animation:cardSlideUp 0.7s cubic-bezier(0.25,0.8,0.25,1) both;isolation:isolate}.tools-hub-card:nth-child(1){animation-delay:0.05s}.tools-hub-card:nth-child(2){animation-delay:0.15s}.tools-hub-card .card-shimmer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity 0.3s ease}.tools-hub-card .card-shimmer::after{content:'';position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);transform:translateX(-100%) skewX(-15deg)}.tools-hub-card:hover .card-shimmer{opacity:1}.tools-hub-card:hover .card-shimmer::after{animation:shimmerSweep 0.7s ease forwards}.tools-hub-card::before{content:'';position:absolute;top:-35%;right:-25%;width:140px;height:140px;background:rgba(255,255,255,0.1);border-radius:50%;z-index:0;transition:all 0.6s cubic-bezier(0.25,0.8,0.25,1)}.tools-hub-card::after{content:'';position:absolute;bottom:-25%;left:-15%;width:100px;height:100px;background:rgba(255,255,255,0.06);border-radius:50%;z-index:0;transition:all 0.6s cubic-bezier(0.25,0.8,0.25,1)}.tools-hub-card:hover::before{transform:scale(1.25) translate(-8px,-8px)}.tools-hub-card:hover::after{transform:scale(1.35) translate(6px,6px)}.tools-hub-card .card-glow-border{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:0;transition:opacity 0.4s ease;box-shadow:inset 0 0 0 2px rgba(255,255,255,0.25)}.tools-hub-card:hover .card-glow-border{opacity:1}.tools-hub-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 40px -8px rgba(0,0,0,0.2),0 0 0 4px rgba(255,255,255,0.08);z-index:2}.tools-hub-card .card-icon-wrap{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-md);background:rgba(255,255,255,0.18);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);margin-bottom:14px;transition:all 0.4s cubic-bezier(0.25,0.8,0.25,1)}.tools-hub-card:hover .card-icon-wrap{background:rgba(255,255,255,0.28);transform:scale(1.08);box-shadow:0 0 20px rgba(255,255,255,0.2)}.tools-hub-card.card-music{background:linear-gradient(135deg,#d4a030 0%,#4f46e5 40%,#b8860b 100%)}.tools-hub-card.card-random{background:linear-gradient(135deg,#f59e0b 0%,#f97316 40%,#ef4444 100%)}.tools-hub-card.card-video{background:linear-gradient(135deg,#10b981 0%,#14b8a6 40%,#059669 100%)}.tools-hub-card.card-novel{background:linear-gradient(135deg,#8b5cf6 0%,#ffd770 40%,#a855f7 100%)}.tools-hub-card.card-ai{background:linear-gradient(135deg,#ec4899 0%,#f472b6 40%,#f43f5e 100%)}.card-rpchat{background:linear-gradient(135deg,#8b5cf6 0%,#ffd770 40%,#b8860b 100%)}.tools-hub-card.card-app{background:linear-gradient(135deg,#0ea5e9 0%,#06b6d4 40%,#0891b2 100%)}.tools-hub-card.card-express{background:linear-gradient(135deg,#6366f1 0%,#818cf8 40%,#6d28d9 100%)}.tools-hub-card.card-translate{background:linear-gradient(135deg,#0284c7 0%,#3b82f6 40%,#6366f1 100%)}.tools-hub-card.card-speedtest{background:linear-gradient(135deg,#059669 0%,#10b981 40%,#34d399 100%)}.tools-hub-card.card-hotsearch{background:linear-gradient(135deg,#dc2626 0%,#f97316 40%,#facc15 100%)}.tools-hub-card.card-news60s{background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 40%,#06b6d4 100%)}.tools-hub-card.card-history{background:linear-gradient(135deg,#78350f 0%,#b45309 40%,#d97706 100%)}.tools-hub-card.card-moyu{background:linear-gradient(135deg,#0891b2 0%,#06b6d4 40%,#67e8f9 100%)}.tools-hub-card.card-joke{background:linear-gradient(135deg,#facc15 0%,#f59e0b 40%,#f97316 100%)}.tools-hub-card.card-loveword{background:linear-gradient(135deg,#ec4899 0%,#f472b6 40%,#fb7185 100%)}.tools-hub-card.card-dewatermark{background:linear-gradient(135deg,#b8860b 0%,#a855f7 40%,#c084fc 100%)}.tools-hub-card.card-lottery{background:linear-gradient(135deg,#be123c 0%,#e11d48 40%,#fb7185 100%)}.tools-hub-card.card-phone{background:linear-gradient(135deg,#047857 0%,#059669 40%,#34d399 100%)}.tools-hub-card.card-trash{background:linear-gradient(135deg,#166534 0%,#16a34a 40%,#4ade80 100%)}.tools-hub-card.card-emoji{background:linear-gradient(135deg,#db2777 0%,#ec4899 40%,#f472b6 100%)}.tools-hub-card.card-imgtool{background:linear-gradient(135deg,#0d9488 0%,#14b8a6 40%,#2dd4bf 100%)}.tools-hub-card.card-qrgen{background:linear-gradient(135deg,#6d28d9 0%,#b8860b 40%,#ffd770 100%)}.tools-hub-card.card-learn{background:linear-gradient(135deg,#b45309 0%,#d97706 40%,#fbbf24 100%)}.tools-hub-card.card-wall{background:linear-gradient(135deg,#0c4a6e 0%,#0284c7 40%,#38bdf8 100%)}.tools-hub-card .card-icon{font-size:24px;opacity:1;position:relative;z-index:1;transition:transform 0.4s cubic-bezier(0.25,0.8,0.25,1)}.tools-hub-card:hover .card-icon{animation:none}.tools-hub-card .card-title{font-size:19px;font-weight:700;margin-bottom:3px;position:relative;z-index:1;letter-spacing:0.5px}.tools-hub-card .card-subtitle{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:2px;opacity:0.6;margin-bottom:6px;position:relative;z-index:1}.tools-hub-card .card-desc{font-size:13px;opacity:0.8;font-weight:400;position:relative;z-index:1}.tools-hub-card .card-arrow{position:absolute;bottom:16px;right:20px;z-index:1;font-size:14px;opacity:0;transform:translateX(-8px);transition:all 0.35s cubic-bezier(0.25,0.8,0.25,1)}.tools-hub-card:hover .card-arrow{opacity:0.7;transform:translateX(0)}.tools-hub-card.card-music,.tools-hub-card.card-random{min-height:170px;padding:28px 24px}.tools-hub-card.card-music .card-icon-wrap,.tools-hub-card.card-random .card-icon-wrap{width:56px;height:56px}.tools-hub-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.tools-hub-row-3 .tools-hub-card{min-height:140px;padding:22px 18px;animation:cardSlideUp 0.7s cubic-bezier(0.25,0.8,0.25,1) both}.tools-hub-row-3 .tools-hub-card:nth-child(1){animation-delay:0.2s}.tools-hub-row-3 .tools-hub-card:nth-child(2){animation-delay:0.3s}.tools-hub-row-3 .tools-hub-card:nth-child(3){animation-delay:0.4s}.tools-hub-row-3 .tools-hub-card .card-icon-wrap{width:42px;height:42px;margin-bottom:10px}.tools-hub-row-3 .tools-hub-card .card-icon{font-size:20px}.tools-hub-row-3 .tools-hub-card .card-title{font-size:16px}.tools-hub-row-3 .tools-hub-card .card-desc{font-size:12px}.tools-hub-row-3 .tools-hub-card .card-arrow{bottom:12px;right:14px;font-size:12px}@media (max-width:768px){.tools-stats-bar{gap:8px}.tools-stat-item{padding:10px 12px}.tools-stat-item .stat-value{font-size:18px}.tools-stat-item .stat-icon{font-size:16px}.tools-hub-row-3{grid-template-columns:1fr 1fr 1fr;gap:10px}.tools-hub-row-3 .tools-hub-card{min-height:115px;padding:16px 12px}.tools-hub-row-3 .tools-hub-card .card-icon-wrap{width:36px;height:36px}.tools-hub-row-3 .tools-hub-card .card-icon{font-size:17px}.tools-hub-row-3 .tools-hub-card .card-title{font-size:14px}.tools-hub-row-3 .tools-hub-card .card-desc{font-size:11px}.tools-hub-grid{gap:12px}.tools-hub-card{padding:22px 18px}.tools-hub-card.card-music,.tools-hub-card.card-random{min-height:140px}.tools-hub-card .card-icon-wrap{width:44px;height:44px}.tools-hub-card.card-music .card-icon-wrap,.tools-hub-card.card-random .card-icon-wrap{width:48px;height:48px}.tools-hub-card .card-title{font-size:16px}.tools-hub-card .card-arrow{opacity:0.5;transform:translateX(0)}}.search-bar{display:flex;gap:12px;flex-wrap:wrap}.search-input,.search-select,.form-input{flex:1;min-width:200px;padding:12px 16px;border:var(--border-glass);border-radius:var(--radius-md);background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));color:var(--text-primary);font-size:15px;font-family:var(--font-family);outline:none;transition:var(--transition-normal);box-shadow:var(--shadow-sm);transform:translateZ(0)}.search-input:focus,.search-select:focus,.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(212,160,48,0.1);transform:translateY(-1px)}.search-select{padding:12px 36px 12px 16px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;min-width:120px;cursor:pointer}.btn{padding:12px 22px;border:var(--border-glass);border-radius:14px;font-size:14px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all 0.35s cubic-bezier(0.22,1,0.36,1);display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow-sm);white-space:nowrap;user-select:none;min-height:44px;min-width:44px;letter-spacing:0.2px;transform:translateZ(0)}.btn-primary{background:var(--primary-gradient);color:#ffffff;border:none;box-shadow:0 4px 16px -4px var(--primary-glow)}.btn-primary:hover{box-shadow:0 8px 28px -4px var(--primary-glow);transform:translateY(-2px) scale(1.02);filter:brightness(1.08)}.btn-primary:active{transform:translateY(0) scale(0.98);box-shadow:0 2px 8px -2px var(--primary-glow)}.btn-primary:disabled{background:var(--primary-disabled);cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm);opacity:0.7;filter:none}.btn-secondary{background:rgba(255,255,255,0.6);color:var(--text-primary);backdrop-filter:blur(5px) saturate(180%);-webkit-backdrop-filter:blur(5px) saturate(180%);border:1px solid rgba(255,255,255,0.4)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-danger{background:var(--error);color:#ffffff;border:none}.btn-danger:hover{background:#dc2626;box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-icon{width:36px;height:36px;min-height:36px;min-width:36px;padding:0;border-radius:var(--radius-full);font-size:14px}.btn-sm{padding:6px 8px;font-size:12px;min-height:32px;min-width:32px}.status{padding:12px 16px;border-radius:var(--radius-md);font-size:14px;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);line-height:1.5;word-break:break-all}.status.success{background:rgba(16,185,129,0.1);color:var(--success);border-color:rgba(16,185,129,0.2)}.status.error{background:rgba(239,68,68,0.1);color:var(--error);border-color:rgba(239,68,68,0.2)}.status.info{background:rgba(59,130,246,0.1);color:var(--info);border-color:rgba(59,130,246,0.2)}.status.warning{background:rgba(245,158,11,0.1);color:var(--warning);border-color:rgba(245,158,11,0.2)}.music-list{list-style:none;border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.download-card,.profile-card,.share-card,.setting-card,.playlist-card,.video-card,.music-item{background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));border:var(--border-glass);transform:translateZ(0);transition:var(--transition-normal)}.music-item{border-radius:0;border-bottom:var(--border-solid);padding:12px 16px;display:flex;align-items:center;gap:12px}.music-item:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.music-item:last-child{border-bottom:none;border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.music-item:hover{background:rgba(255,255,0.85);transform:translateX(4px)}.theme-dark .music-item:hover{background:rgba(30,41,59,0.85)}.music-item.playing{background:rgba(212,160,48,0.08);border-left:3px solid var(--primary)}.video-card{border-radius:var(--radius-lg);overflow:hidden}.video-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}.video-cover{transition:transform 0.3s ease}.video-card:hover .video-cover{transform:scale(1.06)}.setting-card{padding:16px}.setting-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);background:rgba(255,255,255,0.85)}.theme-dark .setting-card:hover{background:rgba(30,41,59,0.85)}.download-card,.profile-card,.share-card{padding:16px}.download-card:hover,.profile-card:hover,.share-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);background:rgba(255,255,255,0.85)}.theme-dark .download-card:hover,.theme-dark .profile-card:hover,.theme-dark .share-card:hover{background:rgba(30,41,59,0.85)}.music-cover{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;border:1px solid var(--border);loading:lazy}.music-info{flex:1;min-width:150px;overflow:hidden}.music-name{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.music-artist{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin:16px 0}.playlist-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 12px;display:flex;flex-direction:column;gap:8px;transition:var(--transition);cursor:pointer;box-shadow:var(--shadow-sm)}.playlist-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-md)}.playlist-card.active{border-color:var(--primary);background:rgba(212,160,48,0.05)}.playlist-name{font-weight:600;font-size:16px;color:var(--text-primary);word-break:break-word}.playlist-count{font-size:13px;color:var(--text-tertiary)}.playlist-actions{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.playlist-actions .btn-sm{padding:4px 8px;font-size:12px;min-height:28px}.current-playlist-header{display:flex;align-items:center;justify-content:space-between;margin:8px 0;flex-wrap:wrap;gap:12px}.playlist-songs{list-style:none;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-top:8px}.playlist-select-list{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md);margin:16px 0}.playlist-select-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:8px}.playlist-select-item:last-child{border-bottom:none}.playlist-select-item:hover{background:var(--bg-secondary)}.playlist-select-item.selected{background:rgba(212,160,48,0.1);color:var(--primary)}.playlist-select-item .fa-check{margin-left:auto;color:var(--primary);visibility:hidden}.playlist-select-item.selected .fa-check{visibility:visible}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:10px}.video-cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--border)}.video-info{padding:12px;display:flex;flex-direction:column;gap:6px}.video-user{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:4px}.video-duration{font-size:12px;color:var(--text-tertiary);background:var(--bg-secondary);padding:2px 6px;border-radius:var(--radius-sm);display:inline-block;margin-left:8px}.video-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.video-file-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;color:var(--text-primary);text-decoration:none;transition:var(--transition);display:inline-flex;align-items:center;gap:4px}.video-file-btn:hover{background:var(--primary);color:white;border-color:var(--primary)}.tabs{display:flex;gap:6px;border-bottom:1px solid rgba(0,0,0,0.04);padding-bottom:10px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-item{padding:8px 18px;border-radius:12px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all 0.3s cubic-bezier(0.22,1,0.36,1);user-select:none;white-space:nowrap;min-height:36px;display:flex;align-items:center;justify-content:center;letter-spacing:0.2px}.tab-item.active{background:var(--primary-gradient);color:#ffffff;box-shadow:0 4px 12px -2px var(--primary-glow)}.tab-item:hover:not(.active){background:rgba(0,0,0,0.04);color:var(--text-primary)}.tab-item:active{transform:scale(0.96)}.theme-dark .tabs{border-bottom-color:rgba(255,255,255,0.04)}.theme-dark .tab-item:hover:not(.active){background:rgba(255,255,255,0.06)}.player-bar{position:fixed;bottom:84px;left:16px;right:16px;height:76px;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,0.72) 0%,rgba(255,255,255,0.58) 100%);backdrop-filter:blur(6px) saturate(200%) brightness(1.04);-webkit-backdrop-filter:blur(6px) saturate(200%) brightness(1.04);border:1px solid rgba(255,255,255,0.45);box-shadow:0 16px 48px -12px rgba(0,0,0,0.12),0 4px 16px -4px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.55),inset 0 -1px 0 rgba(0,0,0,0.03);display:flex;align-items:center;padding:0 16px;gap:14px;z-index:998;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);animation:slideUp 0.5s cubic-bezier(0.22,1,0.36,1);cursor:default}.player-bar.hidden{transform:translateY(120%);opacity:0;pointer-events:none}.player-cover-wrap{position:relative;width:52px;height:52px;flex-shrink:0;border-radius:50%;overflow:visible}.player-cover-wrap::before{content:'';position:absolute;inset:-5px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,0.12) 0%,transparent 50%),radial-gradient(circle at 70% 70%,rgba(0,0,0,0.35) 0%,transparent 50%),repeating-radial-gradient( circle at center,#0a0a0a 0px,#0a0a0a 2px,#151515 2px,#151515 4px );z-index:0;box-shadow:0 3px 10px rgba(0,0,0,0.35),inset 0 1px 2px rgba(255,255,255,0.08)}.player-cover-wrap.playing .player-cover{animation:vinylSpin 3.5s linear infinite}@keyframes vinylSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.player-cover{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;position:relative;z-index:1;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.25)}.player-cover-wrap::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);border:2px solid rgba(0,0,0,0.45);z-index:2;box-shadow:inset 0 1px 2px rgba(0,0,0,0.3)}.player-info{flex:1;min-width:0;overflow:hidden}.player-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;letter-spacing:0.2px}.player-artist{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-progress{position:absolute;top:0;left:0;right:0;height:3.5px;background:rgba(0,0,0,0.06);cursor:pointer;border-radius:2px 2px 0 0;overflow:visible}.progress-bar{height:100%;background:linear-gradient(to right,#d4a030 0%,#b8860b 25%,#ec4899 50%,#f59e0b 75%,#ef4444 100%);background-size:200% 100%;width:0%;transition:width 0.15s linear;position:relative;border-radius:2px 0 0 2px}.progress-bar::after{content:'';position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--primary);box-shadow:0 0 12px rgba(212,160,48,0.4),0 2px 6px rgba(0,0,0,0.15);opacity:0;transform:translateY(-50%) scale(0.6);transition:all 0.25s cubic-bezier(0.22,1,0.36,1)}.player-bar:hover .progress-bar::after,.player-progress:active .progress-bar::after{opacity:1;transform:translateY(-50%) scale(1)}.player-bar:hover .progress-bar{animation:progressRainbow 3s linear infinite}@keyframes progressRainbow{0%{background-position:0% 50%}100%{background-position:200% 50%}}.player-time{font-size:11px;color:var(--text-tertiary);flex-shrink:0;min-width:90px;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:0.5px}.player-quality{position:relative;flex-shrink:0}.quality-btn{padding:5px 10px;font-size:11px;font-weight:600;border-radius:var(--radius-full);background:rgba(212,160,48,0.08);color:var(--primary);border:1px solid rgba(212,160,48,0.15);cursor:pointer;transition:all 0.25s;white-space:nowrap}.quality-btn:hover{background:rgba(212,160,48,0.15);border-color:rgba(212,160,48,0.3)}.quality-select{position:absolute;bottom:100%;right:0;margin-bottom:10px;background:var(--bg-card-glass);backdrop-filter:blur(6px) saturate(180%);-webkit-backdrop-filter:blur(6px) saturate(180%);border:var(--border-glass);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);list-style:none;min-width:90px;padding:6px;display:none;animation:fadeIn 0.2s ease-out}.quality-select.active{display:block}.quality-item{padding:8px 14px;font-size:12px;color:var(--text-primary);cursor:pointer;transition:all 0.2s;text-align:center;border-radius:8px}.quality-item:hover{background:rgba(212,160,48,0.08);color:var(--primary)}.quality-item.active{color:var(--primary);font-weight:600;background:rgba(212,160,48,0.06)}.player-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.player-controls .btn-icon{width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,0.04);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.25s;font-size:14px}.player-controls .btn-icon:hover{background:rgba(0,0,0,0.08);color:var(--text-primary);transform:scale(1.08)}.player-controls .btn-play{width:42px;height:42px;border-radius:50%;border:none;background:var(--primary-gradient);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s cubic-bezier(0.22,1,0.36,1);font-size:16px;box-shadow:0 4px 16px rgba(212,160,48,0.3)}.player-controls .btn-play:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(212,160,48,0.4)}.player-controls .btn-play:active{transform:scale(0.95)}.theme-dark .player-bar{background:linear-gradient(135deg,rgba(30,41,59,0.85) 0%,rgba(15,23,42,0.78) 100%);border:1px solid rgba(255,255,255,0.08);box-shadow:0 16px 48px -12px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.04)}.theme-dark .player-progress{background:rgba(255,255,255,0.06)}.theme-dark .player-controls .btn-icon{background:rgba(255,255,255,0.06);color:var(--text-secondary)}.theme-dark .player-controls .btn-icon:hover{background:rgba(255,255,255,0.12);color:#fff}.theme-dark .quality-btn{background:rgba(212,160,48,0.15);border-color:rgba(212,160,48,0.25)}@media (max-width:768px){.player-bar{bottom:74px;left:10px;right:10px;height:68px;border-radius:18px;padding:0 12px;gap:10px}.player-cover-wrap{width:44px;height:44px}.player-cover-wrap::before{inset:-4px}.player-cover-wrap::after{width:12px;height:12px}.player-name{font-size:13px}.player-artist{font-size:11px}.player-time{min-width:72px;font-size:10px}.player-controls .btn-icon{width:30px;height:30px;font-size:12px}.player-controls .btn-play{width:36px;height:36px;font-size:14px}.player-quality{display:none}}.lyric-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn 0.3s ease-out}.lyric-modal.active{display:flex}.lyric-content{width:100%;max-width:500px;max-height:80vh;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;display:flex;flex-direction:column;gap:16px}.lyric-header{display:flex;align-items:center;justify-content:space-between}.lyric-header h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.lyric-close{width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);display:flex;align-items:center;justify-content:center}.lyric-close:hover{background:var(--bg-secondary);color:var(--error)}.lyric-list{flex:1;overflow-y:auto;text-align:center;padding:20px 0;scroll-behavior:smooth}.lyric-line{font-size:16px;color:var(--text-tertiary);margin-bottom:16px;line-height:1.8;transition:var(--transition)}.lyric-line.active{color:var(--primary);font-weight:500;font-size:18px;transform:scale(1.05)}.lyric-empty{font-size:14px;color:var(--text-tertiary);text-align:center;padding:40px 0}.download-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.download-card{padding:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);display:flex;flex-direction:column;gap:12px;cursor:pointer}.download-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary)}.download-icon{width:48px;height:48px;border-radius:var(--radius-md);background:rgba(212,160,48,0.1);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:20px}.download-title{font-size:17px;font-weight:600;color:var(--text-primary);margin:0}.download-desc{font-size:14px;color:var(--text-secondary);flex:1;line-height:1.5;margin:0}.profile-card{padding:32px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--primary);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px;border:2px solid var(--border);cursor:pointer;transition:var(--transition);user-select:none}.profile-avatar:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.profile-name{font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.profile-desc{font-size:14px;color:var(--text-secondary);margin-bottom:24px}.profile-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:28px;margin-top:4px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.06)}.stat-item{text-align:center;min-width:56px;cursor:default}.stat-num{font-size:24px;font-weight:700;line-height:1.2;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{font-size:12px;color:var(--text-tertiary);margin-top:4px}.profile-avatar-edit{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.profile-avatar-edit .profile-avatar{margin:0;width:72px;height:72px;font-size:28px}.avatar-actions{display:flex;flex-direction:column;gap:8px}.btn-sm{font-size:13px;padding:7px 14px;border-radius:var(--radius-sm)}@media (max-width:480px){.profile-stats{gap:18px}.stat-num{font-size:20px}}.share-card{padding:32px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center}.share-logo{width:80px;height:80px;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--border);margin:0 auto 16px}.share-title{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.share-desc{font-size:14px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.qrcode-container{width:200px;height:200px;margin:0 auto 24px;background:#ffffff;border-radius:var(--radius-md);border:1px solid var(--border);padding:10px;display:flex;align-items:center;justify-content:center}.qrcode-container canvas{width:100% !important;height:100% !important;border-radius:4px}.link-input-group{display:flex;gap:12px;margin-bottom:24px}.link-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:var(--font-family);outline:none;transition:var(--transition);user-select:all}.link-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(212,160,48,0.1)}.share-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:16px;margin-bottom:24px}.share-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:var(--transition);user-select:none;padding:12px 8px;border-radius:var(--radius-md)}.share-item:hover{background:var(--bg-secondary);transform:translateY(-2px)}.share-item-icon{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:20px;color:#ffffff}.share-item-icon.wechat{background:#07c160}.share-item-icon.qq{background:#12b7f5}.share-item-icon.weibo{background:#e6162d}.share-item-icon.qzone{background:#ffce00;color:#333333}.share-item-label{font-size:13px;color:var(--text-secondary);font-weight:500}.share-btn-copied{background:var(--success) !important;border-color:var(--success) !important;color:var(--white) !important}.theme-dark .qrcode-container{background:#ffffff}.theme-dark .link-input{background:var(--bg-card)}.wechat-share-guide{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);z-index:99999;display:none;animation:fadeIn 0.3s ease-out}.wechat-share-guide.active{display:block}.wechat-guide-content{padding:40px 20px;text-align:right;color:#ffffff}.wechat-guide-content i{font-size:60px;margin-bottom:20px;animation:bounce 2s infinite}.wechat-guide-content p{font-size:18px;line-height:1.8;margin-bottom:12px}.wechat-guide-tip{margin-top:40px;text-align:center;font-size:14px;opacity:0.7}.share-poster-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);z-index:10000;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn 0.3s ease-out}.share-poster-modal.active{display:flex}.share-poster-content{width:100%;max-width:320px;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.poster-img-container{width:100%;aspect-ratio:3/4;background:linear-gradient(135deg,var(--primary) 0%,#4f46e5 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;gap:20px}.poster-logo{width:80px;height:80px;border-radius:var(--radius-md);object-fit:contain;border:2px solid rgba(255,255,255,0.3)}.poster-title{font-size:24px;font-weight:700;color:#ffffff;text-align:center}.poster-desc{font-size:14px;color:rgba(255,255,255,0.9);text-align:center;line-height:1.5}.poster-qrcode-wrap{background:#ffffff;padding:15px;border-radius:var(--radius-md);margin-top:10px}.poster-qrcode{width:120px;height:120px}.poster-actions{padding:20px;display:flex;gap:12px}.poster-actions .btn{flex:1}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.setting-card{padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;user-select:none}.setting-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.setting-icon{width:40px;height:40px;border-radius:var(--radius-md);background:rgba(212,160,48,0.1);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:18px}.setting-title{font-size:15px;font-weight:500;color:var(--text-primary)}.bottom-nav{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateZ(0);width:fit-content;min-width:460px;max-width:92vw;height:72px;border-radius:9999px;display:flex;align-items:center;justify-content:center;gap:4px;z-index:999;padding:0 20px;padding-bottom:env(safe-area-inset-bottom);overflow:hidden;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);background:rgba(255,255,255,0.55) !important;backdrop-filter:blur(6px) saturate(220%) brightness(1.05) !important;-webkit-backdrop-filter:blur(6px) saturate(220%) brightness(1.05) !important;border:1px solid rgba(255,255,255,0.45) !important;outline:none !important;box-sizing:border-box !important;box-shadow:0 20px 60px -12px rgba(0,0,0,0.12),0 4px 16px -4px rgba(0,0,0,0.06),0 1px 3px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,0.6),inset 0 -1px 0 rgba(0,0,0,0.03);will-change:transform}.bottom-nav::before{content:'';position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:60%;height:3px;background:var(--primary-gradient);border-radius:9999px;opacity:0.7;filter:blur(1px);transition:opacity 0.4s ease,width 0.4s ease}.bottom-nav:hover::before{opacity:1;width:75%}.theme-dark .bottom-nav{background:rgba(15,23,42,0.75) !important;border:1px solid rgba(255,255,255,0.08) !important;box-shadow:0 20px 60px -12px rgba(0,0,0,0.5),0 4px 16px -4px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.06),inset 0 -1px 0 rgba(0,0,0,0.2) !important}.theme-dark .bottom-nav::before{opacity:0.5}.theme-dark .bottom-nav:hover::before{opacity:0.8}.bottom-nav.hide-nav{transform:translateY(140%);opacity:0}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:58px;height:100%;padding:8px 10px;border-radius:18px;color:var(--text-tertiary);text-decoration:none;transition:all 0.35s cubic-bezier(0.22,1,0.36,1);cursor:pointer;user-select:none;transform:scale(1);white-space:nowrap;font-size:10.5px;font-weight:500;letter-spacing:0.3px;background:transparent !important;border:none !important;position:relative;flex-shrink:0}.nav-item .nav-icon{font-size:20px;transition:all 0.35s cubic-bezier(0.22,1,0.36,1);color:var(--text-tertiary);line-height:1}.nav-item .nav-label{transition:all 0.35s cubic-bezier(0.22,1,0.36,1);line-height:1}.nav-item.active{color:var(--primary);background:rgba(212,160,48,0.08) !important}.nav-item.active .nav-icon{color:var(--primary);transform:translateY(-3px) scale(1.15);filter:drop-shadow(0 3px 8px var(--primary-glow))}.nav-item.active .nav-label{color:var(--primary);font-weight:700;letter-spacing:0.5px}.nav-item.active::before{content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--primary);box-shadow:0 0 8px var(--primary-glow);animation:none}@keyframes navPulse{0%,100%{opacity:1;transform:translateX(-50%) scale(1)}50%{opacity:0.5;transform:translateX(-50%) scale(0.7)}}.nav-item:hover:not(.active){color:var(--text-secondary);background:rgba(0,0,0,0.03) !important}.nav-item:hover:not(.active) .nav-icon{color:var(--text-secondary);transform:translateY(-2px) scale(1.05)}.theme-dark .nav-item:hover:not(.active){background:rgba(255,255,255,0.04) !important}.theme-dark .nav-item.active{background:rgba(212,160,48,0.12) !important}@media (max-width:768px){.bottom-nav{bottom:16px;min-width:auto;height:56px;padding:0 14px;gap:2px;border-radius:9999px}.nav-item{min-width:46px;padding:6px 6px;font-size:9.5px;gap:3px;border-radius:14px}.nav-item .nav-icon{font-size:17px !important}.nav-item.active::before{top:4px;width:3px;height:3px}}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.4);backdrop-filter:blur(4px) saturate(150%);-webkit-backdrop-filter:blur(4px) saturate(150%);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);padding:16px}.modal-backdrop.active{opacity:1;visibility:visible}.modal{width:100%;max-width:420px;background:rgba(255,255,255,0.75);backdrop-filter:blur(6px) saturate(220%) brightness(1.03);-webkit-backdrop-filter:blur(6px) saturate(220%) brightness(1.03);border:1px solid rgba(255,255,255,0.5);border-radius:24px;box-shadow:0 24px 64px -16px rgba(0,0,0,0.12),0 8px 24px -8px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.7),inset 0 -1px 0 rgba(0,0,0,0.02);overflow:hidden;transform:translateY(30px) scale(0.95);transition:all 0.4s cubic-bezier(0.22,1,0.36,1);max-height:90vh;display:flex;flex-direction:column;transform:translateZ(0)}.modal-backdrop.active .modal{transform:translateY(0) scale(1)}.theme-dark .modal{background:rgba(15,23,42,0.8);border:1px solid rgba(255,255,255,0.06);box-shadow:0 24px 64px -16px rgba(0,0,0,0.5),0 8px 24px -8px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.04)}.modal-lg{max-width:600px}.modal-notice{max-width:550px;max-height:85vh}.notice-content{line-height:1.8;color:var(--text-secondary);font-size:14px}.notice-content h4{color:var(--primary);font-size:16px;font-weight:600;margin:16px 0 8px}.notice-content h4:first-child{margin-top:0}.notice-content p{margin-bottom:8px}.notice-content .highlight{color:var(--primary);font-weight:500}.notice-footer{display:flex;align-items:center;justify-content:space-between;width:100%}.notice-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;color:var(--text-secondary);font-size:14px}.notice-checkbox input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.modal-backdrop.active .modal{transform:translateY(0) scale(1)}.modal-header{padding:20px 24px;border-bottom:var(--border-glass);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.modal-close{width:32px;height:32px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-full);transition:var(--transition-fast);display:flex;align-items:center;justify-content:center;font-size:18px;user-select:none}.modal-close:hover{background:var(--bg-card-glass);color:var(--error);transform:scale(1.1)}.modal-body{padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1;line-height:1.7;font-size:14px;color:var(--text-secondary)}.modal-body h4{font-size:16px;font-weight:600;color:var(--text-primary);margin-top:8px;margin-bottom:4px}.modal-footer{padding:16px 24px;border-top:var(--border-glass);display:flex;gap:12px;justify-content:flex-end;flex-shrink:0}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:500;color:var(--text-primary)}.form-input{padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary);font-size:15px;font-family:var(--font-family);outline:none;transition:var(--transition);min-height:44px}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(212,160,48,0.1)}.form-input:disabled{background:var(--bg-secondary);opacity:0.7;cursor:not-allowed}.form-error{font-size:13px;color:var(--error);display:none;line-height:1.4}.form-error.show{display:block}.empty-state{padding:40px 20px;text-align:center;color:var(--text-tertiary)}.empty-state.hidden{display:none !important}.empty-state i{font-size:40px;margin-bottom:16px;opacity:0.5}.empty-state h3{font-size:16px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.empty-state p{font-size:14px}.loading{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-radius:50%;border-top-color:#fff;animation:spin 0.8s linear infinite !important}.loading-dark{border:2px solid rgba(0,0,0,0.1);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes rotateCover{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.footer{text-align:center;padding:20px 0;font-size:13px;color:var(--text-tertiary);margin-top:auto;line-height:1.5}.hidden{display:none !important}.ai-system-prompt{display:flex;flex-direction:column;gap:8px}.ai-chat-container{flex:1;min-height:400px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);scroll-behavior:smooth}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.chat-message{display:flex;gap:12px;max-width:100%;animation:fadeIn 0.3s ease-out}.chat-message-user{flex-direction:row-reverse}.chat-avatar{width:36px;height:36px;border-radius:var(--radius-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px}.chat-message-user .chat-avatar{background:var(--primary);color:var(--white)}.chat-message-ai .chat-avatar{background:linear-gradient(135deg,#6366f1,#d4a030);color:var(--white)}.chat-content{flex:1;min-width:0;padding:12px 16px;border-radius:var(--radius-md);line-height:1.6;word-break:break-word;white-space:pre-wrap}.chat-message-user .chat-content{background:var(--primary);color:var(--white);border-top-right-radius:2px}.chat-message-ai .chat-content{background:var(--bg-secondary);color:var(--text-primary);border-top-left-radius:2px}.chat-content p{margin:0 0 8px 0}.chat-content p:last-child{margin-bottom:0}.chat-content code{background:rgba(0,0,0,0.1);padding:2px 6px;border-radius:4px;font-family:monospace;font-size:0.9em}.theme-dark .chat-content code{background:rgba(255,255,255,0.1)}.ai-input-wrap{display:flex;flex-direction:column;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 16px;box-shadow:var(--shadow-sm)}.ai-input{width:100%;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:15px;font-family:var(--font-family);resize:none;max-height:120px;line-height:1.5}.ai-input::placeholder{color:var(--text-tertiary)}.ai-input-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.player-expand-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);z-index:1001;display:flex;flex-direction:column;transform:translateY(100%);transition:transform 0.4s cubic-bezier(0.25,0.8,0.25,1);padding:env(safe-area-inset-top) 24px env(safe-area-inset-bottom) 24px}.player-expand-modal.active{transform:translateY(0)}.expand-container{width:100%;max-width:500px;height:100%;margin:0 auto;display:flex;flex-direction:column;gap:24px}.expand-close{width:40px;height:40px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);display:flex;align-items:center;justify-content:center;font-size:20px;align-self:flex-start}.expand-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.expand-song-info{text-align:center;flex-shrink:0}.expand-song-name{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-song-artist{font-size:16px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-content{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0}.expand-cover-wrapper{width:100%;display:flex;align-items:center;justify-content:center;animation:fadeIn 0.3s ease-out;position:relative}.expand-cover-wrapper.hidden{display:none !important}.expand-cover-wrapper::before{content:'';position:absolute;width:78%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,0.1) 0%,transparent 50%),radial-gradient(circle at 70% 70%,rgba(0,0,0,0.45) 0%,transparent 50%),repeating-radial-gradient( circle at center,#080808 0px,#080808 3px,#121212 3px,#121212 6px );z-index:0;box-shadow:0 10px 40px rgba(0,0,0,0.45),0 3px 10px rgba(0,0,0,0.35),inset 0 1px 3px rgba(255,255,255,0.06)}.expand-cover-wrapper::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);border:4px solid rgba(0,0,0,0.55);z-index:2;box-shadow:inset 0 2px 5px rgba(0,0,0,0.35)}.expand-cover{width:62%;aspect-ratio:1/1;border-radius:50%;object-fit:cover;transition:transform 0.3s ease;cursor:pointer;position:relative;z-index:1;box-shadow:inset 0 0 0 2px rgba(0,0,0,0.3)}.expand-cover.playing{animation:vinylSpin 20s linear infinite}.expand-lyric-wrapper{width:100%;height:100%;overflow-y:auto;padding:40px 0;scroll-behavior:smooth;animation:fadeIn 0.3s ease-out;cursor:pointer}.expand-lyric-wrapper.hidden{display:none !important}.expand-lyric-wrapper::-webkit-scrollbar{display:none}.expand-lyric-list{min-height:100%;display:flex;flex-direction:column;justify-content:center;gap:20px}.expand-lyric-line{font-size:18px;color:var(--text-tertiary);text-align:center;line-height:1.8;transition:all 0.3s ease;user-select:none}.expand-lyric-line.active{color:var(--primary);font-weight:600;font-size:22px;transform:scale(1.05)}.expand-controls{flex-shrink:0;display:flex;flex-direction:column;gap:20px;padding-bottom:16px}.expand-progress-wrap{display:flex;align-items:center;gap:12px;width:100%}.expand-time-current,.expand-time-total{font-size:14px;color:var(--text-secondary);min-width:45px;text-align:center}.expand-progress{flex:1;height:6px;background:rgba(0,0,0,0.08);border-radius:var(--radius-full);position:relative;cursor:pointer;touch-action:none;overflow:visible}.expand-progress-bar{height:100%;background:linear-gradient(to right,#d4a030 0%,#b8860b 25%,#ec4899 50%,#f59e0b 75%,#ef4444 100%);background-size:200% 100%;border-radius:var(--radius-full);width:0%;transition:width 0.3s linear;position:relative;animation:progressRainbow 3s linear infinite}.expand-progress-handle{position:absolute;top:50%;transform:translate(-50%,-50%);left:0%;width:16px;height:16px;background:#fff;border:3px solid #ec4899;border-radius:50%;transition:left 0.3s linear;box-shadow:0 0 12px rgba(236,72,153,0.4),0 2px 6px rgba(0,0,0,0.15)}.expand-control-btns{display:flex;align-items:center;justify-content:space-between;gap:12px}.expand-btn{width:44px;height:44px;min-height:44px;min-width:44px;font-size:18px}.expand-btn-play{width:60px;height:60px;min-height:60px;min-width:60px;font-size:24px}.expand-bg-media{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1;will-change:transform;transform:translateZ(0);pointer-events:none}.expand-bg-mask{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.45);z-index:-1}.expand-bg-setup{position:absolute;top:20px;right:20px;z-index:10;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,0.3);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.2s}.expand-bg-setup:hover{background:rgba(0,0,0,0.5)}.bg-setup-modal{position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}.bg-setup-box{background:#1e1e1e;color:#fff;border-radius:12px;padding:20px;width:100%;max-width:380px}.bg-setup-title{font-size:16px;margin-bottom:16px}.bg-setup-actions{display:flex;gap:10px;margin-bottom:16px}.bg-setup-btn{flex:1;padding:10px;border-radius:8px;border:none;cursor:pointer}.bg-setup-img{background:#d4a030;color:#fff}.bg-setup-video{background:#0ea5e9;color:#fff}.bg-setup-reset{background:#475569;color:#fff}.bg-file-input{display:none}@media (max-width:768px){body{padding-bottom:90px}.container{padding:16px 12px;gap:16px}.header{padding:24px 16px}.brand-name{font-size:24px}.search-bar{flex-direction:column}.search-bar>.search-input,.search-bar>.search-select,.search-bar>.btn{width:100%}.download-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:repeat(2,1fr)}.music-item{padding:12px}.music-actions{width:100%;justify-content:flex-end;margin-top:8px}.modal{max-height:85vh}.modal-lg,.modal-notice{max-width:100%}.notice-footer{flex-direction:column;align-items:flex-start;gap:12px}.notice-footer .btn{width:100%}.player-bar{height:60px;bottom:84px;left:10px;right:10px;padding:0 12px;gap:10px;border-radius:16px}.player-cover{width:40px;height:40px}.player-time,.player-quality{display:none}.player-controls .btn-icon:nth-child(1),.player-controls .btn-icon:nth-child(5){display:none}.bottom-nav{height:56px;min-width:auto;padding:0 14px;gap:2px}.ai-chat-container{min-height:350px;max-height:50vh;padding:12px}.chat-avatar{width:32px;height:32px;font-size:14px}.chat-content{padding:10px 12px;font-size:14px}.ai-input-actions{flex-direction:column;width:100%}.ai-input-actions .btn{width:100%}.player-expand-modal{padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom) 16px}.expand-container{gap:20px}.expand-song-name{font-size:20px}.expand-song-artist{font-size:14px}.expand-cover-wrapper::before{width:85%}.expand-cover-wrapper::after{width:40px;height:40px;border-width:3px}.expand-cover{width:68%}.expand-lyric-line{font-size:16px}.expand-lyric-line.active{font-size:20px}.expand-btn{width:40px;height:40px;font-size:16px}.expand-btn-play{width:56px;height:56px;font-size:22px}.qrcode-container{width:180px;height:180px}.link-input-group{flex-direction:column}.share-grid{grid-template-columns:repeat(4,1fr);gap:12px}.share-item-icon{width:44px;height:44px;font-size:18px}.share-item-label{font-size:12px}.video-grid{grid-template-columns:1fr}.playlist-grid{grid-template-columns:repeat(2,1fr)}.music-actions .btn-sm{padding:6px 8px;font-size:12px}}.code-input-group{display:flex;gap:12px;align-items:center;width:100%}.code-input-group .form-input{flex:1}.code-input-group .btn{flex-shrink:0;white-space:nowrap}.code-input-group .btn:disabled{opacity:0.6;cursor:not-allowed;transform:none}.theme-dark .code-input-group .btn:disabled{background:var(--bg-secondary);border-color:var(--border)}.download-btn{background:#3b82f6 !important;color:#ffffff !important;border-color:#d4a030 !important}.download-btn:hover{background:#d4a030 !important;box-shadow:0 4px 12px rgba(212,160,48,0.2) !important}.download-btn.loading{opacity:0.8;cursor:not-allowed}.download-btn.loading i{animation:spin 1s linear infinite}.download-modal .modal-body{padding:20px}.download-quality-list{display:flex;flex-direction:column;gap:10px;margin:10px 0 20px}.download-quality-item{padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);display:flex;justify-content:space-between;align-items:center}.download-quality-item:hover{border-color:var(--primary);background:rgba(212,160,48,0.05)}.download-quality-item.selected{border-color:var(--primary);background:rgba(212,160,48,0.1);color:var(--primary);font-weight:500}.download-quality-item .format-tag{font-size:12px;padding:2px 8px;border-radius:var(--radius-full);background:rgba(212,160,48,0.1);color:var(--primary)}.download-progress{height:6px;background:var(--border);border-radius:var(--radius-full);margin:16px 0;overflow:hidden}.download-progress-bar{height:100%;background:var(--primary);width:0%;transition:width 0.3s ease}.source-select-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.source-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:14px;outline:none;cursor:pointer}.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:20px}.movie-card{background:rgba(255,255,255,0.1);border-radius:12px;overflow:hidden;cursor:pointer;transition:all 0.3s ease;border:1px solid rgba(255,255,255,0.1)}.movie-card:hover{transform:translateY(-6px);box-shadow:0 10px 20px rgba(0,0,0,0.2)}.movie-poster{width:100%;aspect-ratio:3/4;object-fit:cover;background:rgba(255,255,255,0.05)}.movie-info{padding:10px}.movie-name{font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.movie-desc{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-modal{width:100%;margin-bottom:20px}.player-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}#moviePlayerTitle{font-size:16px;font-weight:600;color:var(--text-primary)}#movieIframePlayer{width:100%;aspect-ratio:16/9;border-radius:12px;background:#000}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.history-header span{font-size:16px;font-weight:600;color:var(--text-primary)}.history-list{display:flex;gap:12px;flex-wrap:wrap}.history-item{padding:8px 16px;background:rgba(255,255,255,0.1);border-radius:8px;border:1px solid rgba(255,255,255,0.15);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all 0.3s ease;white-space:nowrap}.history-item:hover{background:var(--primary)}.empty-history{width:100%;padding:20px 0;text-align:center;color:var(--text-tertiary)}@media (max-width:768px){.movie-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.source-select-bar{flex-direction:column;align-items:flex-start}}.nc-recent-section h4{color:#fff;margin-bottom:8px;font-size:16px}.recent-books-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;-ms-overflow-style:none;scrollbar-width:none}.recent-books-list::-webkit-scrollbar{display:none}.recent-book-item{background:rgba(255,255,255,0.1);padding:8px 12px;border-radius:8px;color:#fff;font-size:14px;white-space:nowrap;cursor:pointer;transition:background 0.2s ease}.recent-book-item:hover{background:rgba(255,255,255,0.2)}.recent-book-item small{display:block;color:rgba(255,255,255,0.6);font-size:12px;margin-top:2px}#ncCategoryTabs{margin:12px 0}.read-mode-normal{font-size:16px;line-height:1.8;color:var(--text-primary)}.read-mode-large{font-size:18px;line-height:1.9}.read-mode-small{font-size:14px;line-height:1.7}.read-eye-care{background:#f8f4e8 !important;color:#3c3c3c !important}.theme-dark .read-eye-care{background:#1e293b !important;color:#ffebc8 !important}.nc-book-card{position:relative}.nc-book-cover{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-md)}.nc-history-item{padding:6px 12px;background:var(--bg-secondary);border-radius:6px;font-size:13px}.theme-dark #downloadModal>div{background:var(--bg-card-glass);border:var(--border-glass)}.theme-dark #downloadModal h3,.theme-dark #downloadModal p,.theme-dark #downloadModal button{color:var(--text-primary)}.theme-dark .download-quality-item{border-color:var(--border-glass) !important;color:var(--text-primary) !important}.theme-dark .download-quality-item.selected{background:rgba(212,160,48,0.15) !important;border-color:var(--primary) !important;color:var(--primary) !important}body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;background:linear-gradient(-45deg,#667eea,#764ba2,#f093fb,#f5576c,#4facfe,#00f2fe);background-size:400% 400%;animation:none;opacity:0.08}.theme-dark body::before{opacity:0.05}@keyframes gradientFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.random-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1001;display:none;align-items:center;justify-content:center;animation:fadeIn 0.25s ease-out}.random-panel-overlay.active{display:flex}.random-panel{background:var(--bg-card-glass);backdrop-filter:blur(6px) saturate(200%);-webkit-backdrop-filter:blur(6px) saturate(200%);border:var(--border-glass);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:24px;width:90%;max-width:360px;animation:cardSlideUp 0.4s cubic-bezier(0.22,1,0.36,1)}.random-panel h3{font-size:18px;font-weight:700;color:var(--text-primary);margin:0 0 4px 0;display:flex;align-items:center;gap:8px}.random-panel h3 i{color:var(--primary)}.random-panel .random-subtitle{font-size:12px;color:var(--text-secondary);margin-bottom:18px}.random-panel .random-chart-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.random-chart-item{padding:14px 16px;border-radius:var(--radius-md);background:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.3);cursor:pointer;text-align:center;transition:all 0.3s cubic-bezier(0.22,1,0.36,1);font-size:13px;font-weight:600;color:var(--text-primary);display:flex;flex-direction:column;align-items:center;gap:6px}.random-chart-item:hover{background:var(--primary-gradient);color:#fff;transform:translateY(-3px);box-shadow:0 8px 24px rgba(212,160,48,0.2);border-color:transparent}.random-chart-item i{font-size:20px}.random-panel-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,0.06);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all 0.2s}.random-panel-close:hover{background:rgba(0,0,0,0.12);color:var(--error)}.theme-dark .random-chart-item{background:rgba(30,41,59,0.6);border:1px solid rgba(255,255,255,0.08)}.theme-dark .random-panel-close{background:rgba(255,255,255,0.08)}.ai-tabs{display:flex;gap:8px;padding:4px;border-radius:var(--radius-full);background:rgba(255,255,255,0.6);margin-bottom:20px}.tab-btn{flex:1;padding:10px 16px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:6px}.tab-btn.active{background:var(--primary);color:white;box-shadow:0 2px 8px rgba(212,160,48,0.2)}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn 0.3s ease}.ai-chat-container{height:350px;overflow-y:auto;padding:16px;border-radius:var(--radius-lg);background:rgba(255,255,255,0.5);margin-bottom:16px}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}.empty-icon{font-size:48px;margin-bottom:16px;color:var(--primary);opacity:0.5}.ai-input-area{display:flex;align-items:flex-end;gap:12px;padding:12px 16px;border-radius:var(--radius-lg)}.chat-input{flex:1;min-height:48px;max-height:120px;padding:12px;border:none;border-radius:var(--radius-md);background:rgba(255,255,255,0.8);resize:none;font-family:inherit}.input-actions{display:flex;gap:8px}.action-btn{width:40px;height:40px;border:none;border-radius:50%;background:rgba(0,0,0,0.05);color:var(--text-secondary);cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.action-btn:hover{background:rgba(0,0,0,0.1);color:var(--primary)}.send-btn{width:40px;height:40px;border:none;border-radius:50%;background:var(--primary);color:white;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center}.send-btn:hover{background:var(--primary-hover)}.form-row{display:flex;gap:16px}.flex-1{flex:1}.prompt-input{width:100%;min-height:100px;padding:12px;border-radius:var(--radius-md);border:1px solid rgba(0,0,0,0.1);background:rgba(255,255,255,0.8);resize:vertical;font-family:inherit}.file-input,.size-select{width:100%;padding:10px;border-radius:var(--radius-md);border:1px solid rgba(0,0,0,0.1);background:rgba(255,255,255,0.8)}.primary-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-full);background:var(--primary);color:white;font-weight:600;cursor:pointer;transition:background 0.2s;display:flex;align-items:center;justify-content:center;gap:8px}.primary-btn:hover{background:var(--primary-hover)}.loading-tip{margin:12px 0;color:var(--text-secondary);text-align:center}.result-container{margin-top:20px}.image-card,.video-card{padding:16px;border-radius:var(--radius-md);background:rgba(255,255,255,0.6);margin-bottom:16px}.generated-image,.generated-video{width:100%;border-radius:var(--radius-sm);margin-bottom:12px}.image-actions,.video-actions{display:flex;gap:10px}.error-tip{color:var(--error);text-align:center;padding:16px}.hidden{display:none}.app-result-list{margin-top:16px}.app-result-card{display:flex;gap:14px;padding:14px;border-radius:var(--radius-md);background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));border:var(--border-glass);margin-bottom:12px;transition:var(--transition-normal)}.app-result-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.app-result-icon{flex-shrink:0;width:64px;height:64px;border-radius:var(--radius-md);object-fit:cover;background:rgba(255,255,255,0.06)}.app-result-body{flex:1;min-width:0}.app-result-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:6px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.app-tag{display:inline-block;padding:2px 8px;font-size:11px;border-radius:var(--radius-full);background:rgba(212,160,48,0.15);color:#f5c04a;border:1px solid rgba(212,160,48,0.25)}.app-tag.free{background:rgba(16,185,129,0.15);color:#6ee7b7;border-color:rgba(16,185,129,0.25)}.app-tag.cate{background:rgba(168,85,247,0.15);color:#d8b4fe;border-color:rgba(168,85,247,0.25)}.app-result-meta{font-size:12px;color:var(--text-tertiary);margin-bottom:8px;display:flex;flex-wrap:wrap;gap:10px}.app-result-meta i{margin-right:3px}.app-result-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.app-result-actions{display:flex;gap:8px;flex-wrap:wrap}.app-empty-state{text-align:center;padding:48px 20px;color:var(--text-tertiary)}.app-empty-state i{font-size:48px;margin-bottom:16px;opacity:0.4}@media (max-width:480px){.app-result-icon{width:52px;height:52px}.app-result-name{font-size:15px}}#particles-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.particle-dot{position:absolute;border-radius:50%;animation:none}@keyframes particleRise{0%{transform:translateY(0) translateX(0);opacity:0}5%{opacity:1}95%{opacity:1}100%{transform:translateY(-100vh) translateX(60px);opacity:0}}#glow-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.glow-orb{position:absolute;border-radius:50%;filter:blur(5px);opacity:0.2}.glow-orb-1{width:500px;height:500px;background:#d4a030;top:-10%;left:10%;animation:none}.glow-orb-2{width:400px;height:400px;background:#b8860b;bottom:-5%;right:10%;animation:none}.glow-orb-3{width:600px;height:600px;background:#06b6d4;top:40%;left:50%;transform:translate(-50%,-50%);animation:none}@keyframes glowFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-30px)}}.container{position:relative;z-index:1}.header{background:rgba(13,13,21,0.35) !important;backdrop-filter:blur(4px) brightness(110%) !important;-webkit-backdrop-filter:blur(4px) brightness(110%) !important;border:0.5px solid rgba(255,255,255,0.12) !important;box-shadow:0 8px 32px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.08) !important}.hitokoto{background:rgba(13,13,21,0.35) !important;backdrop-filter:blur(4px) brightness(108%) !important;-webkit-backdrop-filter:blur(4px) brightness(108%) !important;border:0.5px solid rgba(255,255,255,0.1) !important;border-left:3px solid var(--primary) !important}.hitokoto-text{color:rgba(255,255,255,0.9) !important}.hitokoto-source{color:rgba(255,255,255,0.5) !important}.hitokoto-refresh{background:rgba(255,255,255,0.1) !important;color:rgba(255,255,255,0.7) !important}.hitokoto-refresh:hover{background:rgba(255,255,255,0.2) !important}.tool-header h2{color:rgba(255,255,255,0.95) !important}.tools-stat-item{background:rgba(13,13,21,0.35) !important;backdrop-filter:blur(4px) brightness(108%) !important;-webkit-backdrop-filter:blur(4px) brightness(108%) !important;border:0.5px solid rgba(255,255,255,0.1) !important}.tools-stat-item .stat-value{color:rgba(255,255,255,0.95) !important}.tools-stat-item .stat-label{color:rgba(255,255,255,0.5) !important}.search-input,.search-select,.form-input{background:rgba(13,13,21,0.35) !important;backdrop-filter:blur(4px) brightness(108%) !important;-webkit-backdrop-filter:blur(4px) brightness(108%) !important;border:0.5px solid rgba(255,255,255,0.1) !important;color:rgba(255,255,255,0.9) !important}.search-input::placeholder,.form-input::placeholder{color:rgba(255,255,255,0.35) !important}.search-input:focus,.form-input:focus{border-color:rgba(212,160,48,0.5) !important;box-shadow:0 0 0 3px rgba(212,160,48,0.15) !important}@media(min-width:1024px){.bottom-nav{background:rgba(13,13,21,0.4) !important;backdrop-filter:blur(5px) brightness(110%) !important;-webkit-backdrop-filter:blur(5px) brightness(110%) !important;border:0.5px solid rgba(255,255,255,0.12) !important;box-shadow:0 12px 40px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.08) !important}}.player-bar{background:linear-gradient(135deg,rgba(13,13,21,0.5) 0%,rgba(13,13,21,0.35) 100%) !important;backdrop-filter:blur(4px) brightness(110%) !important;-webkit-backdrop-filter:blur(4px) brightness(110%) !important;border:0.5px solid rgba(255,255,255,0.12) !important;box-shadow:0 8px 32px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.08) !important}.modal{background:rgba(13,13,21,0.55) !important;backdrop-filter:blur(6px) brightness(112%) !important;-webkit-backdrop-filter:blur(6px) brightness(112%) !important;border:0.5px solid rgba(255,255,255,0.12) !important;box-shadow:0 16px 48px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.08) !important}.modal-title{color:rgba(255,255,255,0.95) !important}.modal-body{color:rgba(255,255,255,0.7) !important}.modal-body h4{color:rgba(255,255,255,0.95) !important}.modal-close{color:rgba(255,255,255,0.5) !important}.modal-close:hover{background:rgba(255,255,255,0.1) !important;color:var(--error) !important}.notice-content{color:rgba(255,255,255,0.7) !important}.notice-content h4{color:var(--primary) !important}.notice-checkbox{color:rgba(255,255,255,0.6) !important}.btn-secondary{background:rgba(255,255,255,0.08) !important;color:rgba(255,255,255,0.8) !important;backdrop-filter:blur(4px) !important;-webkit-backdrop-filter:blur(4px) !important;border:0.5px solid rgba(255,255,255,0.1) !important}.btn-secondary:hover{background:rgba(255,255,255,0.15) !important;color:#fff !important}.download-card,.profile-card,.share-card,.setting-card,.playlist-card,.video-card,.music-item{background:rgba(13,13,21,0.3) !important;backdrop-filter:blur(4px) brightness(108%) !important;-webkit-backdrop-filter:blur(4px) brightness(108%) !important;border:0.5px solid rgba(255,255,255,0.08) !important}.music-item:hover{background:rgba(255,255,255,0.08) !important}.music-item.playing{background:rgba(212,160,48,0.15) !important}.status{color:rgba(255,255,255,0.6) !important}.form-label{color:rgba(255,255,255,0.8) !important}.footer{color:rgba(255,255,255,0.35) !important}.brand-name{background:linear-gradient(135deg,#f8fafc 0%,#f5c04a 100%) !important;-webkit-background-clip:text !important;-webkit-text-fill-color:transparent !important;background-clip:text !important}.brand-desc{color:rgba(255,255,255,0.4) !important}.player-expand-modal{background:rgba(10,15,26,0.85) !important;backdrop-filter:blur(6px) brightness(110%) !important;-webkit-backdrop-filter:blur(6px) brightness(110%) !important}.expand-song-name{color:rgba(255,255,255,0.95) !important}.expand-song-artist{color:rgba(255,255,255,0.5) !important}.ai-chat-container{background:rgba(13,13,21,0.3) !important;border:0.5px solid rgba(255,255,255,0.08) !important}.setting-section{background:rgba(13,13,21,0.3) !important;border:0.5px solid rgba(255,255,255,0.08) !important}::-webkit-scrollbar-track{background:rgba(255,255,255,0.03) !important}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15) !important}::selection{background:rgba(212,160,48,0.3) !important}.nav-item{color:rgba(255,255,255,0.4) !important}.nav-item .nav-icon{color:rgba(255,255,255,0.4) !important}.nav-item:hover:not(.active){background:rgba(255,255,255,0.06) !important}.nav-item:hover:not(.active) .nav-icon{color:rgba(255,255,255,0.7) !important}.express-form{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:20px;margin-bottom:16px}.express-input-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.express-input-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:180px}.express-input-main{flex:2;min-width:260px}.express-input-phone{flex:0.8;min-width:130px;max-width:180px}.express-input-group label{font-size:13px;color:rgba(255,255,255,0.6);display:flex;align-items:center;gap:5px}.express-input-group label i{font-size:11px;opacity:0.7}.express-input-group input,.express-input-group select{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:10px;padding:10px 14px;color:#fff;font-size:14px;transition:border-color 0.2s,box-shadow 0.2s;outline:none}.express-input-group input:focus,.express-input-group select:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,0.15)}.express-input-group input::placeholder{color:rgba(255,255,255,0.3)}.express-input-group select option{background:#1a1a2e;color:#fff}#expressSearchBtn{width:100%;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;padding:12px;font-size:15px;font-weight:600}#expressSearchBtn:disabled{opacity:0.6;cursor:not-allowed}.express-result{min-height:100px}.express-summary{background:linear-gradient(135deg,rgba(245,158,11,0.12),rgba(217,119,6,0.06));border:1px solid rgba(245,158,11,0.2);border-radius:14px;padding:18px 20px;margin-bottom:16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;animation:fadeIn 0.4s ease-out}.express-summary-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;flex-shrink:0}.express-summary-info{flex:1;min-width:200px}.express-summary-info .carrier-name{font-size:16px;font-weight:600;color:#fff}.express-summary-info .tracking-no{font-size:13px;color:rgba(255,255,255,0.5);margin-top:2px;font-family:monospace}.express-status-badge{padding:5px 14px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap}.express-status-badge.delivered{background:rgba(34,197,94,0.15);color:#4ade80;border:1px solid rgba(34,197,94,0.3)}.express-status-badge.transit{background:rgba(59,130,246,0.15);color:#f5c04a;border:1px solid rgba(59,130,246,0.3)}.express-status-badge.pending{background:rgba(245,158,11,0.15);color:#fbbf24;border:1px solid rgba(245,158,11,0.3)}.express-timeline{position:relative;padding-left:28px;animation:fadeIn 0.4s ease-out}.express-timeline::before{content:'';position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,rgba(245,158,11,0.5),rgba(255,255,255,0.08));border-radius:1px}.express-timeline-item{position:relative;padding-bottom:22px;animation:fadeIn 0.3s ease-out both}.express-timeline-item:last-child{padding-bottom:0}.express-timeline-item::before{content:'';position:absolute;left:-24px;top:4px;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.2);transition:all 0.3s}.express-timeline-item:first-child::before{background:#f59e0b;border-color:#fbbf24;box-shadow:0 0 0 4px rgba(245,158,11,0.2);animation:none}@keyframes expressPulse{0%,100%{box-shadow:0 0 0 4px rgba(245,158,11,0.2)}50%{box-shadow:0 0 0 7px rgba(245,158,11,0.08)}}.express-timeline-time{font-size:12px;color:rgba(255,255,255,0.45);margin-bottom:3px;font-family:monospace}.express-timeline-content{font-size:14px;color:rgba(255,255,255,0.85);line-height:1.5}.express-timeline-item:first-child .express-timeline-content{color:#fff;font-weight:500}.express-empty{text-align:center;padding:50px 20px;color:rgba(255,255,255,0.3)}.express-empty i{font-size:48px;margin-bottom:12px;display:block}.express-empty p{font-size:14px}.express-skeleton-item{padding-bottom:22px;padding-left:4px}.express-skeleton-bar{height:12px;border-radius:6px;margin-bottom:6px;background:linear-gradient(90deg,rgba(255,255,255,0.06) 25%,rgba(255,255,255,0.12) 50%,rgba(255,255,255,0.06) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite}@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (max-width:640px){.express-input-row{flex-direction:column}.express-input-group{min-width:100% !important;max-width:100% !important}.express-summary{flex-direction:column;text-align:center}}
/* ===== 工具搜索框 ===== */
.tool-search-wrap{position:relative;display:flex;align-items:center;max-width:560px;margin:0 auto 20px}
.tool-search-icon{position:absolute;left:18px;color:var(--text-tertiary);font-size:15px;pointer-events:none;z-index:1}
.tool-search-input{width:100%;padding:13px 46px 13px 46px;border-radius:var(--radius-full);border:var(--border-glass);background:var(--bg-card-glass);backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur-desktop)) saturate(var(--glass-saturate));color:var(--text-primary);font-size:15px;font-family:var(--font-family);outline:none;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.tool-search-input::placeholder{color:var(--text-tertiary)}
.tool-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}
.tool-search-clear{position:absolute;right:12px;width:26px;height:26px;border-radius:50%;border:none;background:rgba(255,255,255,0.08);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:var(--transition-fast)}
.tool-search-clear:hover{background:rgba(255,255,255,0.18);color:var(--text-primary)}
.tool-search-empty{display:none;text-align:center;padding:48px 16px;color:var(--text-tertiary)}
.tool-search-empty.show{display:block}
.tool-search-empty i{font-size:40px;display:block;margin-bottom:14px;opacity:0.4}
.tool-search-empty div{font-size:16px;margin-bottom:6px;color:var(--text-secondary)}
.tool-search-empty small{font-size:13px}
@media(max-width:640px){.tool-search-wrap{margin:0 0 16px}}
/* ===== 表情包搜索 ===== */
.emoji-box{display:flex;flex-direction:column;gap:14px}
.emoji-search-row{display:flex;gap:10px}
.emoji-input{flex:1;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}
.emoji-input:focus{outline:none;border-color:var(--primary)}
.emoji-tags{display:flex;flex-wrap:wrap;gap:8px}
.emoji-tag{padding:6px 14px;border-radius:20px;background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .25s}
.emoji-tag:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px)}
.emoji-loading{text-align:center;padding:20px;color:var(--text-secondary);font-size:14px}
.emoji-loading i{margin-right:6px}
.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.emoji-item{aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .3s;background:var(--bg-secondary);position:relative}
.emoji-item:hover{transform:scale(1.05);box-shadow:0 4px 16px rgba(0,0,0,0.2)}
.emoji-item img{width:100%;height:100%;object-fit:cover}
.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;box-shadow:0 4px 16px -4px rgba(16,185,129,0.4);padding:12px 22px;border-radius:14px;font-size:14px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all .35s cubic-bezier(0.22,1,0.36,1);display:inline-flex;align-items:center;gap:6px}
.btn-success:hover{box-shadow:0 8px 28px -4px rgba(16,185,129,0.5);transform:translateY(-2px) scale(1.02);filter:brightness(1.08)}
/* ===== 二维码生成 ===== */
.qrgen-box{display:flex;flex-direction:column;gap:14px}
.qrgen-type-row{display:flex;gap:8px}
.qrgen-type-btn{flex:1;padding:10px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .25s;display:flex;align-items:center;justify-content:center;gap:6px}
.qrgen-type-btn:hover{border-color:var(--primary);color:var(--text-primary)}
.qrgen-type-btn.active{background:var(--primary-gradient);color:#fff;border-color:transparent}
.qrgen-input-area{display:flex;flex-direction:column;gap:10px}
.qrgen-input-area textarea,.qrgen-input-area input,.qrgen-input-area select{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit;resize:vertical}
.qrgen-input-area textarea:focus,.qrgen-input-area input:focus,.qrgen-input-area select:focus{outline:none;border-color:var(--primary)}
.qrgen-wifi-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qrgen-wifi-form select{grid-column:1/-1}
.qrgen-settings{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.qrgen-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}
.qrgen-label select{padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:13px}
.qrgen-label input[type=color]{width:36px;height:36px;border:var(--border-solid);border-radius:var(--radius-sm);cursor:pointer;background:transparent}
.qrgen-preview{justify-content:center;align-items:center;padding:20px}
.qrgen-preview img{max-width:300px;border-radius:var(--radius-md);border:var(--border-solid)}
.qrgen-actions{justify-content:center}
@media(max-width:640px){.qrgen-wifi-form{grid-template-columns:1fr}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}
/* ===== 学习中心 ===== */
.learn-box{display:flex;flex-direction:column;gap:16px}
.learn-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.learn-tab{flex:0 0 auto;padding:10px 18px;border-radius:var(--radius-full);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s;white-space:nowrap;display:flex;align-items:center;gap:6px}
.learn-tab:hover{color:var(--text-primary)}
.learn-tab.active{background:var(--primary-gradient);color:#fff;border-color:transparent}
.learn-panel{display:none}
.learn-panel.active{display:flex;flex-direction:column;gap:12px;animation:fadeIn .3s ease}
/* 古诗词 */
.poetry-controls{display:flex;gap:10px;flex-wrap:wrap}
.poetry-controls select{padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}
.poetry-controls select:focus{outline:none;border-color:var(--primary)}
.poetry-card{padding:28px 24px;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(180,83,9,0.08),rgba(251,191,36,0.04));border:var(--border-solid);border-left:3px solid #d97706;min-height:120px}
.poetry-placeholder{text-align:center;color:var(--text-tertiary);padding:20px 0;font-size:14px}
.poetry-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}
.poetry-meta{font-size:13px;color:var(--text-secondary);margin-bottom:16px}
.poetry-dynasty{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);background:rgba(180,83,9,0.15);color:#fbbf24;font-size:12px;font-weight:600;margin-right:6px}
.poetry-grade{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);background:rgba(212,160,48,0.15);color:#f5c04a;font-size:12px;font-weight:600}
.poetry-content{font-size:18px;line-height:2;color:var(--text-primary);white-space:pre-wrap;margin-bottom:16px;font-family:'KaiTi','STKaiti','Pingfang SC',serif}
.poetry-trans{font-size:14px;color:var(--text-secondary);line-height:1.7;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass);margin-bottom:8px}
.poetry-trans strong{color:var(--text-primary)}
.poetry-apprec{font-size:14px;color:var(--text-secondary);line-height:1.7;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass)}
.poetry-apprec strong{color:var(--text-primary)}
/* 题库 */
.quiz-controls{display:flex;gap:10px;flex-wrap:wrap}
.quiz-controls select{padding:10px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}
.quiz-controls select:focus{outline:none;border-color:var(--primary)}
.quiz-area{min-height:120px}
.quiz-placeholder{text-align:center;color:var(--text-tertiary);padding:40px 0;font-size:14px}.quiz-loading{text-align:center;padding:40px 0;color:var(--text-secondary);font-size:14px}.quiz-loading i{margin-right:6px}.quiz-source-hint{font-size:12px;color:var(--text-tertiary);padding:8px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);margin-top:-4px}.quiz-source-hint i{margin-right:4px;color:var(--primary)}.quiz-source-tag{display:inline-block;padding:3px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:600;margin-top:4px}.quiz-source-tag.online{background:rgba(16,185,129,0.15);color:#22c55e}.quiz-source-tag.local{background:rgba(245,158,11,0.15);color:#f59e0b}
.quiz-progress{font-size:13px;color:var(--text-secondary);margin-bottom:12px}
.quiz-question{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:16px;line-height:1.6}
.quiz-options{display:flex;flex-direction:column;gap:10px}
.quiz-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);cursor:pointer;transition:all .25s}
.quiz-option:hover{border-color:var(--primary);background:rgba(212,160,48,0.05)}
.quiz-option.correct{background:rgba(16,185,129,0.12);border-color:#22c55e}
.quiz-option.wrong{background:rgba(239,68,68,0.12);border-color:#ef4444}
.quiz-opt-label{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--bg-card-solid);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-secondary)}
.quiz-option.correct .quiz-opt-label{background:#22c55e;color:#fff}
.quiz-option.wrong .quiz-opt-label{background:#ef4444;color:#fff}
.quiz-opt-text{flex:1;font-size:15px;color:var(--text-primary)}
.quiz-feedback{margin-top:12px;padding:12px 16px;border-radius:var(--radius-md);font-size:14px;line-height:1.6}
.quiz-feedback.correct{background:rgba(16,185,129,0.1);color:#22c55e}
.quiz-feedback.wrong{background:rgba(239,68,68,0.1);color:#ef4444}
.quiz-result{text-align:center;padding:30px}
.quiz-score{font-size:48px;font-weight:800;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.quiz-score-label{font-size:16px;color:var(--text-secondary);margin:8px 0 20px}
/* 英语学习 */
.english-search-row{display:flex;gap:10px}
.english-input{flex:1;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:14px;font-family:inherit}
.english-input:focus{outline:none;border-color:var(--primary)}
.english-daily{padding:16px 20px;border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(212,160,48,0.08),rgba(184,134,11,0.05));border-left:3px solid var(--primary);margin-bottom:4px}
.daily-label{font-size:12px;color:var(--text-tertiary);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}
.daily-en{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}
.daily-zh{font-size:14px;color:var(--text-secondary)}
.english-result{min-height:40px}
.english-loading{text-align:center;padding:20px;color:var(--text-secondary);font-size:14px}
.english-loading i{margin-right:6px}
.english-notfound{text-align:center;padding:20px;color:var(--text-tertiary);font-size:14px}
.word-card{padding:20px;border-radius:var(--radius-lg);background:var(--bg-card-glass);border:var(--border-solid)}
.word-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.word-text{font-size:28px;font-weight:800;color:var(--text-primary)}
.word-phonetic{font-size:16px;color:var(--text-secondary);font-family:monospace}
.word-meaning{margin-bottom:12px}
.word-pos{display:inline-block;padding:3px 10px;border-radius:var(--radius-full);background:rgba(168,85,247,0.15);color:#c084fc;font-size:12px;font-weight:600;margin-bottom:8px;text-transform:italic}
.word-defs{margin:0;padding-left:20px}
.word-defs li{font-size:14px;color:var(--text-primary);line-height:1.8;margin-bottom:4px}
.word-example{font-size:13px;color:var(--text-tertiary);margin-top:4px;font-style:italic}
/* 学习资料 */
.material-cats{display:flex;gap:8px;flex-wrap:wrap}
.material-cat{padding:8px 20px;border-radius:var(--radius-full);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s}
.material-cat:hover{color:var(--text-primary)}
.material-cat.active{background:var(--primary-gradient);color:#fff;border-color:transparent}
.material-list{display:flex;flex-direction:column;gap:10px}
.material-item{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);text-decoration:none;color:var(--text-primary);transition:all .25s}
.material-item:hover{transform:translateX(4px);border-color:var(--primary);background:rgba(212,160,48,0.05)}
.material-icon{flex:0 0 40px;width:40px;height:40px;border-radius:var(--radius-md);background:rgba(212,160,48,0.1);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:16px}
.material-info{flex:1;min-width:0}
.material-name{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px}
.material-desc{font-size:13px;color:var(--text-tertiary)}
.material-arrow{color:var(--text-tertiary);font-size:12px}
@media(max-width:640px){.poetry-content{font-size:16px}.word-text{font-size:24px}.quiz-question{font-size:15px}}
/* ===== 高清壁纸 ===== */
.wall-box{display:flex;flex-direction:column;gap:14px}
.wall-categories{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.wall-cat{flex:0 0 auto;padding:8px 16px;border-radius:var(--radius-full);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .25s;white-space:nowrap;display:flex;align-items:center;gap:6px}
.wall-cat:hover{color:var(--text-primary);border-color:var(--primary)}
.wall-cat.active{background:var(--primary-gradient);color:#fff;border-color:transparent}
.wall-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wall-orient-toggle{display:flex;gap:6px;background:var(--bg-card-glass);border-radius:var(--radius-full);padding:3px}
.wall-orient-btn{padding:7px 14px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:5px}
.wall-orient-btn:hover{color:var(--text-primary)}
.wall-orient-btn.active{background:var(--primary);color:#fff}
.wall-quality-toggle select,.wall-sort-toggle select{padding:8px 12px;border-radius:var(--radius-md);background:var(--bg-card-glass);border:var(--border-solid);color:var(--text-primary);font-size:13px;font-family:inherit}
.wall-quality-toggle select:focus,.wall-sort-toggle select:focus{outline:none;border-color:var(--primary)}
.wall-loading{text-align:center;padding:30px;color:var(--text-secondary);font-size:14px}
.wall-loading i{margin-right:6px}
.wall-empty{text-align:center;padding:40px 20px;color:var(--text-tertiary);font-size:14px}
.wall-empty i{font-size:32px;margin-bottom:12px;display:block}
.wall-empty p{margin:0}
.wall-masonry{columns:4;column-gap:10px}
.wall-item{break-inside:avoid;margin-bottom:10px;border-radius:var(--radius-md);overflow:hidden;position:relative;cursor:pointer;transition:all .35s cubic-bezier(0.22,1,0.36,1);background:var(--bg-card-solid)}
.wall-item:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,0.25)}
.wall-item img{width:100%;display:block;transition:transform .4s ease}
.wall-item:hover img{transform:scale(1.04)}
.wall-item-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,0.85));opacity:0;transform:translateY(8px);transition:all .3s ease;display:flex;align-items:flex-end;justify-content:space-between}
.wall-item:hover .wall-item-overlay{opacity:1;transform:translateY(0)}
.wall-item-res{font-size:11px;color:#fff;font-weight:600;background:rgba(0,0,0,0.5);padding:3px 8px;border-radius:var(--radius-full);backdrop-filter:blur(4px)}
.wall-item-actions{display:flex;gap:6px}
.wall-item-btn{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.2);backdrop-filter:blur(3px);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;text-decoration:none;font-size:12px}
.wall-item-btn:hover{background:var(--primary);transform:scale(1.1)}
.wall-load-more-wrap{text-align:center;padding:10px 0}
.wall-preview-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease}
.wall-preview-modal.active{display:flex}
.wall-preview-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.88);backdrop-filter:blur(3px)}
.wall-preview-content{position:relative;z-index:1;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center;gap:14px}
.wall-preview-content img{max-width:100%;max-height:70vh;border-radius:var(--radius-md);box-shadow:0 20px 60px rgba(0,0,0,0.5)}
.wall-preview-close{position:absolute;top:-12px;right:-12px;width:36px;height:36px;border-radius:50%;background:var(--bg-card-solid);border:2px solid var(--border-solid);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s;z-index:2}
.wall-preview-close:hover{background:var(--error);color:#fff;transform:scale(1.1)}
.wall-preview-info{font-size:13px;color:rgba(255,255,255,0.75);text-align:center;max-width:600px}
.wall-preview-info a{color:rgba(255,255,255,0.8);text-decoration:underline}
.wall-preview-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
@media(max-width:1024px){.wall-masonry{columns:3}}
@media(max-width:768px){.wall-masonry{columns:2}}
@media(max-width:480px){.wall-masonry{columns:1;column-gap:8px}.wall-preview-content img{max-height:50vh}.wall-filter-bar{flex-direction:column;align-items:stretch}}
/* 音乐面板视觉升级 */
#music-tool .tool-header h2{background:linear-gradient(135deg,#f5c04a 0%,#ffd770 45%,#f472b6 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}
#music-tool .tab-item.active{box-shadow:0 6px 20px -4px rgba(184,134,11,0.5),inset 0 0 0 1px rgba(255,255,255,0.08)}
#music-tool .music-item{position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.25,.8,.25,1),box-shadow .25s}
#music-tool .music-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#d4a030,#b8860b,#ec4899);transform:scaleY(0);transform-origin:center;transition:transform .3s cubic-bezier(.25,.8,.25,1);border-radius:0 3px 3px 0;z-index:2}
#music-tool .music-item:hover::before,#music-tool .music-item.playing::before{transform:scaleY(1)}
#music-tool .music-item.playing{box-shadow:inset 0 0 36px rgba(184,134,11,0.14)}
#music-tool .music-item.playing .music-name{background:linear-gradient(90deg,#ffd770,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#music-tool .search-bar{background:rgba(18,18,28,0.4);backdrop-filter:blur(4px) saturate(140%);-webkit-backdrop-filter:blur(4px) saturate(140%);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-md);padding:10px;box-shadow:0 8px 28px rgba(0,0,0,0.25)}

/* ===================== PC端沉浸式播放器（mineradio风格） ===================== */
/* Mineradio 设计令牌（提取自 mineradio.art，作用域限定 .pc-player，不泄漏到移动端） */
.pc-player{
  --mr-bg:#05080f;
  --mr-accent:#00F5D4;--mr-accent-rgb:0,245,212;--mr-accent-hov:#00E0BE;
  --mr-glass-bg:linear-gradient(112deg,rgba(72,74,76,.62),rgba(24,27,30,.70) 48%,rgba(8,12,14,.74));
  --mr-glass-bg-focus:linear-gradient(112deg,rgba(88,91,92,.68),rgba(28,32,35,.76) 50%,rgba(8,13,15,.82));
  --mr-glass-border:rgba(0,245,212,.30);--mr-glass-border-soft:rgba(255,255,255,.095);
  --mr-glass-shadow:0 22px 64px rgba(0,0,0,.30),0 0 34px rgba(0,245,212,.052),inset 0 1px 0 rgba(255,255,255,.16),inset 0 -24px 58px rgba(0,0,0,.16);
  --mr-glass-shadow-focus:0 24px 72px rgba(0,0,0,.34),0 0 0 1px rgba(0,245,212,.13),0 0 42px rgba(0,245,212,.075),inset 0 1px 0 rgba(255,255,255,.20);
  --mr-glass-filter:blur(4px) saturate(1.8) brightness(1.16);
  --mr-dock-radius:50px;
  --mr-font:"Noto Sans SC","PingFang SC","HarmonyOS Sans SC","Alibaba PuHuiTi","Inter",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
}
@media(max-width:1023px){.pc-player{display:none !important}}
.pc-player{position:fixed;inset:0;z-index:1100;display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:opacity 0.5s ease,visibility 0s linear 0.6s;pointer-events:none;overflow:hidden;background:#030610;background-image:radial-gradient(ellipse 80% 50% at 22% 12%,rgba(18,50,120,0.32),transparent 50%),radial-gradient(ellipse 60% 40% at 85% 78%,rgba(12,72,140,0.22),transparent 45%),radial-gradient(ellipse 50% 50% at 55% 45%,rgba(35,40,110,0.20),transparent 55%),radial-gradient(ellipse 40% 30% at 10% 85%,rgba(8,60,100,0.18),transparent 40%),radial-gradient(circle at 50% 50%,rgba(3,6,16,0.7),transparent 75%);font-family:var(--mr-font)}
.pc-player.active{visibility:visible;opacity:1;pointer-events:auto;transition:opacity 0.5s ease,visibility 0s linear 0s}
.pcp-galaxy{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;transition:opacity 0.4s ease}
.pcp-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 75% 65% at 50% 45%,transparent 35%,rgba(2,4,12,0.35) 70%,rgba(2,4,12,0.7) 90%,rgba(1,2,8,0.92) 100%),linear-gradient(180deg,rgba(2,4,12,0.28) 0%,transparent 15%,transparent 85%,rgba(2,4,12,0.4) 100%)}
.pcp-galaxy.off{opacity:0}

/* ========== 电影镜头特效层 ========== */
.pcp-cine-flash{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 50% 45%,rgba(255,255,255,0.55) 0%,rgba(200,230,255,0.25) 30%,transparent 60%);opacity:0;transition:opacity 0.15s ease-out;mix-blend-mode:screen}
.pcp-cine-flash.active{opacity:1;transition:opacity 0.08s ease-in}
.pcp-cine-blur{position:absolute;inset:0;z-index:2;pointer-events:none;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);opacity:0;transition:backdrop-filter 1.2s ease,opacity 1.2s ease;background:rgba(3,8,20,0)}
.pcp-cine-blur.active{backdrop-filter:blur(3px) brightness(0.85);-webkit-backdrop-filter:blur(3px) brightness(0.85);opacity:1;background:rgba(3,8,20,0.15)}

/* ========== 闲置/播放状态切换 ========== */
.pc-player.is-idle .pcp-glow-lyric{opacity:0;transform:scale(0.96)}
.pc-player.is-idle .pcp-dock{opacity:0.5;filter:brightness(0.7)}
.pc-player.is-idle .pcp-topbar{opacity:0.4}
.pc-player.is-idle .pcp-right{opacity:0.3}
.pc-player.is-idle .pcp-float-btns{opacity:0.3}
.pc-player.is-playing .pcp-glow-lyric{opacity:1}
.pc-player.is-playing .pcp-dock{opacity:1;filter:none}
.pc-player.is-playing .pcp-topbar{opacity:1}
.pc-player.is-playing .pcp-right{opacity:1}
.pc-player.is-playing .pcp-float-btns{opacity:1}

/* ========== 控件自动隐藏：下沉+缩放（参考Mineradio soft-hidden: Y下沉88px+scale 0.97） ========== */
.pc-player .pcp-topbar,.pc-player .pcp-dock,.pc-player .pcp-floating-play{transition:opacity 0.6s cubic-bezier(.22,1,.36,1),transform 0.6s cubic-bezier(.22,1,.36,1)}
.pc-player.idle .pcp-topbar{opacity:0;transform:translateY(-40px) scale(0.97);pointer-events:none}
.pc-player.idle .pcp-dock{opacity:0;transform:translateX(-50%) translateY(88px) scale(0.97);pointer-events:none}
.pc-player.idle .pcp-floating-play{opacity:0;transform:translateY(-50%) scale(0.92);pointer-events:none}

/* ========== 顶栏：脱离贴边，浮岛式定位（Mineradio: top:24px right:24px） ========== */
.pcp-topbar{position:absolute;top:24px;left:clamp(20px,4vw,40px);right:clamp(20px,4vw,40px);z-index:3;display:flex;align-items:center;justify-content:space-between;padding:0;flex-shrink:0}
.pcp-top-left{display:flex;align-items:center;gap:6px}
.pcp-back-btn{position:relative}
.pcp-back-btn::after{content:'';position:absolute;right:-2px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid rgba(255,255,255,0.4);border-top:3px solid transparent;border-bottom:3px solid transparent;transition:border-color 0.2s}
.pcp-back-btn:hover::after{border-left-color:#fff}
.pcp-top-pill{display:flex;align-items:center;gap:8px;padding:8px 20px;font-size:11px;font-weight:500;letter-spacing:1px;color:rgba(204,204,204,0.7);border-radius:9999px;background:var(--mr-glass-bg);border:1px solid var(--mr-glass-border-soft);backdrop-filter:var(--mr-glass-filter);-webkit-backdrop-filter:var(--mr-glass-filter);cursor:pointer;transition:all 0.3s ease}
.pcp-top-pill:hover{background:var(--mr-glass-bg-focus);color:#fff;border-color:var(--mr-glass-border);box-shadow:var(--mr-glass-shadow-focus)}
.pcp-top-pill i{color:var(--mr-accent);font-size:10px}
.pcp-top-actions{display:flex;gap:6px}
.pcp-icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid transparent;background:rgba(0,0,0,.10);color:rgba(255,255,255,0.7);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:color 0.18s,transform 0.18s,background 0.18s,box-shadow 0.18s,border-color 0.18s;backdrop-filter:var(--mr-glass-filter);-webkit-backdrop-filter:var(--mr-glass-filter)}
.pcp-icon-btn:hover{color:#fff;background:rgba(255,255,255,0.055);border-color:var(--mr-glass-border-soft);transform:translateY(-1px);box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.20),inset 0 0 12px 5px rgba(255,255,255,0.17),0 12px 34px rgba(0,0,0,0.22),0 0 18px rgba(var(--mr-accent-rgb),0.06);text-shadow:rgba(var(--mr-accent-rgb),0.12) 0 0 10px}
.pcp-icon-btn:active{transform:translateY(0) scale(0.96)}

/* ========== 3D歌词 - Mineradio stage-lyric 3D空间呼吸动画 ========== */
.pcp-center-lyric{position:absolute;top:38%;left:0;right:0;display:flex;align-items:center;justify-content:center;padding:0 clamp(20px,5vw,60px);z-index:2;pointer-events:none;perspective:800px;perspective-origin:50% 80%}
.pcp-center-lyric::before{content:'';position:absolute;left:50%;top:50%;width:clamp(400px,60vw,800px);height:clamp(180px,25vw,300px);transform:translate(-50%,-50%);background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(100,200,255,0.08) 0%,rgba(60,140,255,0.05) 30%,transparent 65%);pointer-events:none;filter:blur(5px);z-index:-1}
.pc-player.has-custom-bg .pcp-center-lyric::before{background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(140,220,255,0.14) 0%,rgba(80,160,255,0.08) 35%,transparent 65%);}
.pcp-glow-lyric{font-size:clamp(22px,3.2vw,42px);font-weight:700;color:#fff;text-align:center;line-height:1.4;max-width:720px;letter-spacing:2px;padding:0 28px;text-shadow:rgba(140,220,255,0.85) 0 0 8px,rgba(100,200,255,0.7) 0 0 20px,rgba(80,160,255,0.4) 0 0 40px;transition:opacity 0.3s ease;transform-style:preserve-3d;animation:pcpLyricBob3D 5.6s cubic-bezier(.22,1,.36,1) infinite;filter:brightness(1.05)}
.pc-player.has-custom-bg .pcp-glow-lyric{text-shadow:rgba(160,230,255,0.9) 0 0 10px,rgba(120,210,255,0.8) 0 0 25px,rgba(100,180,255,0.5) 0 0 50px;filter:brightness(1.12)}
.pcp-glow-lyric.glow-pulse{animation:pcpLyricBob3D 5.6s cubic-bezier(.22,1,.36,1) infinite,pcpGlowPulse 0.6s cubic-bezier(0.22,1,0.36,1)}
@keyframes pcpGlowPulse{0%{opacity:0.4}50%{opacity:1}100%{opacity:1}}
/* 3D 呼吸动画（参考 Mineradio lyr-bob: translate3d + rotateX/Y 创造Z轴深度漂浮） */
@keyframes pcpLyricBob3D{
  0%,100%{transform:translate3d(0,0,0) rotateX(18deg) scale(1)}
  15%{transform:translate3d(6px,-7px,12px) rotateX(20deg) rotateY(-1.5deg) scale(1.01)}
  35%{transform:translate3d(-4px,4px,8px) rotateX(16deg) rotateY(1deg) scale(0.995)}
  50%{transform:translate3d(0,3px,0) rotateX(19deg) rotateY(-0.5deg) scale(1)}
  65%{transform:translate3d(-6px,-5px,10px) rotateX(17deg) rotateY(1.5deg) scale(0.99)}
  85%{transform:translate3d(4px,-2px,6px) rotateX(20deg) rotateY(-1deg) scale(1.005)}
}

/* ========== 队列面板 - Mineradio playlist-panel 风格（左侧浮岛 + 大圆角 + 大留白） ========== */
.pcp-right{position:absolute;left:clamp(20px,4vw,40px);top:clamp(80px,10vh,120px);bottom:clamp(100px,12vh,160px);width:min(380px,calc(100vw - 80px));max-height:60vh;z-index:4;display:flex;flex-direction:column;overflow:hidden;border-radius:24px;user-select:none;backdrop-filter:var(--mr-glass-filter);-webkit-backdrop-filter:var(--mr-glass-filter);background:var(--mr-glass-bg);border:1px solid var(--mr-glass-border-soft);box-shadow:var(--mr-glass-shadow);transition:left 0.4s cubic-bezier(.22,1,.36,1),opacity 0.4s ease,transform 0.4s cubic-bezier(.22,1,.36,1)}
.pcp-right.dragging{transition:none;cursor:grabbing;box-shadow:var(--mr-glass-shadow-focus)}
.pcp-right .pcp-stack-header{cursor:grab;padding:8px 12px;font-size:12px;color:rgba(255,255,255,0.5);text-align:center;border-bottom:1px solid rgba(255,255,255,0.06);flex-shrink:0;}
.pcp-right .pcp-stack-header:hover{color:rgba(255,255,255,0.8);}
.pcp-stack{flex:1;position:relative;perspective:1200px;perspective-origin:50% 40%;overflow:hidden}
.pcp-queue-empty{color:rgba(255,255,255,0.15);font-size:12px;text-align:center;padding:50px 10px}
/* 3D堆叠卡片 */
.pcp-qcard{position:absolute;left:50%;top:50%;width:80%;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;cursor:pointer;transition:transform 0.5s cubic-bezier(0.22,1,0.36,1),opacity 0.5s ease,filter 0.5s ease,box-shadow 0.5s ease;background:var(--mr-glass-bg);backdrop-filter:var(--mr-glass-filter);-webkit-backdrop-filter:var(--mr-glass-filter);border:1px solid var(--mr-glass-border-soft);box-shadow:var(--mr-glass-shadow);transform-origin:center center}
.pcp-qcard:hover{border-color:var(--mr-glass-border)}
.pcp-qcard.current{background:var(--mr-glass-bg-focus);border-color:rgba(var(--mr-accent-rgb),0.32)}
.pcp-qcard-top{display:flex;align-items:center;gap:12px}
.pcp-qcover{width:56px;height:56px;border-radius:12px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,0.03);box-shadow:0 4px 12px rgba(0,0,0,0.4)}
.pcp-qinfo{flex:1;min-width:0}
.pcp-qname{font-size:13px;font-weight:600;color:rgba(255,255,255,0.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcp-qartist{font-size:10px;color:rgba(255,255,255,0.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.pcp-qcard.current .pcp-qname{color:var(--mr-accent)}
.pcp-qcard-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pcp-qidx{font-size:10px;color:rgba(255,255,255,0.2);font-variant-numeric:tabular-nums;flex-shrink:0}
.pcp-qcard.current .pcp-qidx{color:var(--mr-accent)}
.pcp-qplay{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,0.1);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all 0.2s ease;flex-shrink:0}
.pcp-qplay:hover{background:rgba(255,255,255,0.2);transform:scale(1.1)}
.pcp-qfav{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,0.05);color:rgba(255,255,255,0.4);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all 0.2s ease;flex-shrink:0}
.pcp-qfav:hover{color:#E85D75}
.pcp-qfav.liked{color:#E85D75}

/* ========== 底部控制栏 - 1:1 复刻 Mineradio #bottom-bar（药丸浮岛，solid rgba(0,0,0,.10) + blur12/sat1.8/bright1.16，无border，多层inset阴影） ========== */
.pcp-dock{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:3;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;width:min(1120px,calc(100vw - clamp(20px,5vw,72px)));border-radius:var(--mr-dock-radius);background:rgba(0,0,0,.10);backdrop-filter:blur(4px) saturate(1.8) brightness(1.16);-webkit-backdrop-filter:blur(4px) saturate(1.8) brightness(1.16);border:0;padding:clamp(8px,1.2vw,11px) clamp(12px,2.2vw,24px) clamp(10px,1.35vw,14px);gap:10px;opacity:.91;box-shadow:inset 0 0 2px 1px rgba(255,255,255,.35),inset 0 0 10px 4px rgba(255,255,255,.15),0 4px 16px rgba(17,17,26,.05),0 8px 24px rgba(17,17,26,.05),0 16px 56px rgba(17,17,26,.05),inset 0 4px 16px rgba(17,17,26,.05),inset 0 8px 24px rgba(17,17,26,.05),inset 0 16px 56px rgba(17,17,26,.05);transition:transform 0.6s cubic-bezier(.22,1,.36,1),opacity 0.6s cubic-bezier(.22,1,.36,1)}
.pcp-dock:hover{opacity:1}
.pcp-dock-progress{display:flex;justify-content:center;width:100%;margin:4px 0 1px}
.pcp-dock-progress .pcp-progress{flex:0 1 auto;width:calc(100% - clamp(86px,10vw,156px));height:4px;border-radius:999px;background:rgba(255,255,255,0.095);cursor:pointer;position:relative;overflow:visible;align-self:center;box-shadow:inset 0 1px 1px rgba(255,255,255,.12),inset 0 -1px 1px rgba(0,0,0,.20);transition:height 0.2s,background 0.2s,box-shadow 0.2s}
.pcp-dock-progress .pcp-progress:hover,.pcp-dock-progress .pcp-progress.is-dragging{height:5px;background:rgba(255,255,255,0.14);box-shadow:0 0 18px rgba(var(--mr-accent-rgb),0.10),inset 0 1px 1px rgba(255,255,255,0.18)}
.pcp-dock-progress .pcp-progress-bar{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,0.92),rgba(var(--mr-accent-rgb),0.74));transition:width 0.12s linear;position:relative;box-shadow:0 0 16px rgba(var(--mr-accent-rgb),0.18)}
.pcp-dock-progress .pcp-progress-handle{position:absolute;top:50%;left:0%;transform:translate(-50%,-50%) scale(.72);width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff 0,#fff 28%,rgba(194,235,255,0.86) 74%);box-shadow:0 0 0 1px rgba(255,255,255,0.34),0 0 18px rgba(178,229,255,0.28);opacity:0;pointer-events:none;transition:opacity 0.16s,transform 0.16s}
.pcp-dock-progress .pcp-progress:hover .pcp-progress-handle,.pcp-dock-progress .pcp-progress.is-dragging .pcp-progress-handle{opacity:1;transform:translate(-50%,-50%) scale(1)}
/* #controls 三栏网格：左 actions / 中 transport(max-content 居中) / 右 modes */
.pcp-dock-body{width:100%;display:grid;grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);align-items:center;gap:clamp(8px,1.7vw,18px)}
.pcp-dock-left{grid-column:1;display:flex;align-items:center;gap:13px;min-width:0;height:62px;justify-content:flex-start;overflow:visible}
.pcp-track{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
.pcp-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;flex:0 0 auto;background:rgba(255,255,255,0.070);box-shadow:0 10px 28px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.20),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .18s ease,box-shadow .2s ease}
.pcp-now-text{min-width:0;display:flex;flex-direction:column;gap:3px;max-width:min(320px,100%)}
.pcp-now-name{font-size:13.5px;font-weight:700;color:rgba(255,255,255,0.92);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.pcp-now-name:hover{color:#fff;text-shadow:0 0 16px rgba(var(--mr-accent-rgb),0.20)}
.pcp-now-artist{font-size:11.5px;color:rgba(255,255,255,0.48);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.pcp-now-artist:hover{color:#fff;text-shadow:0 0 16px rgba(var(--mr-accent-rgb),0.20)}
/* #quality-btn.quality-pill：56宽 r13 11px 800 */
.pcp-quality-pill{flex:0 0 auto;width:auto;min-width:56px;padding:0 11px;height:36px;border:0;border-radius:13px;font-size:11px;font-weight:800;letter-spacing:.2px;color:rgba(237,245,255,0.82);background:rgba(255,255,255,0.038);box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;white-space:nowrap}
.pcp-dock-center{grid-column:2;justify-self:center;display:flex;align-items:center;justify-content:center;width:max-content;height:62px;gap:clamp(8px,1.1vw,13px)}
.pcp-dock-right{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:13px;min-width:0;height:62px;overflow:visible}
/* Mineradio .ctrl-btn：36x36 r11 transparent，svg 21x21 —— dock 内覆盖基础圆按钮 */
.pcp-dock .pcp-icon-btn{width:36px;height:36px;border-radius:11px;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:rgba(255,255,255,0.70);font-size:21px}
.pcp-dock .pcp-icon-btn i{font-size:21px}
.pcp-dock .pcp-icon-btn:hover{color:#fff;background:rgba(255,255,255,0.045);border-color:transparent;transform:translateY(-1px);text-shadow:0 0 10px rgba(var(--mr-accent-rgb),0.12);box-shadow:inset 0 1px 0 rgba(255,255,255,0.045)}
.pcp-dock .pcp-icon-btn:active{transform:translateY(0) scale(0.96)}
.pcp-dock .pcp-icon-btn.active{color:rgba(210,244,241,0.90);text-shadow:0 0 12px rgba(var(--mr-accent-rgb),0.16)}
.pcp-dock .pcp-icon-btn.liked{color:#ff7a90;text-shadow:0 0 18px rgba(255,122,144,0.36)}
/* #play-btn 58x58 r50% solid rgba(0,0,0,.10) + blur12/sat1.8/bright1.16 */
.pcp-play-btn{width:58px;height:58px;border:0;border-radius:50%;color:rgba(255,255,255,0.96);background:rgba(0,0,0,0.10);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:transform 0.20s cubic-bezier(0.16,1,0.3,1),background 0.20s,box-shadow 0.20s;backdrop-filter:blur(4px) saturate(1.8) brightness(1.16);-webkit-backdrop-filter:blur(4px) saturate(1.8) brightness(1.16);box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.34),inset 0 0 10px 4px rgba(255,255,255,0.13),0 10px 30px rgba(0,0,0,0.18)}
.pcp-play-btn i{font-size:24px}
.pcp-play-btn:hover{background:rgba(255,255,255,0.055);transform:translateY(-1px) scale(1.012);box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.42),inset 0 0 12px 5px rgba(255,255,255,0.17),0 12px 34px rgba(0,0,0,0.22),0 0 18px rgba(var(--mr-accent-rgb),0.10)}
.pcp-play-btn:active{transform:translateY(0) scale(0.965);box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.28),inset 0 0 10px 4px rgba(255,255,255,0.10),0 8px 22px rgba(0,0,0,0.20)}
/* .lyrics-word-icon 词字 20px 800 */
.pcp-word{font-weight:800;font-size:20px;line-height:1;color:currentColor;font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.pcp-volume{display:flex;align-items:center;gap:9px}
.pcp-volume input[type=range]{-webkit-appearance:none;appearance:none;width:92px;height:4px;border-radius:999px;background:rgba(255,255,255,0.10);outline:none;cursor:pointer;accent-color:var(--mr-accent)}
.pcp-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,0.4);cursor:pointer}
.pcp-volume input[type=range]::-moz-range-thumb{width:13px;height:13px;border:none;border-radius:50%;background:#fff;cursor:pointer}
/* #time-display 36h 12px r86 .35ls tabular */
.pcp-time-display{flex:0 0 auto;height:36px;display:flex;align-items:center;justify-content:center;padding:0 2px;font-size:12px;color:rgba(255,255,255,0.50);letter-spacing:0.35px;min-width:86px;text-align:center;font-variant-numeric:tabular-nums}

/* ========== 浮动播放按钮 - 移至右下角浮岛 ========== */
.pcp-floating-play{position:absolute;right:clamp(20px,4vw,40px);bottom:clamp(100px,14vh,160px);z-index:5;width:48px;height:48px;border-radius:50%;border:1px solid var(--mr-glass-border);background:rgba(0,0,0,0.30);color:rgba(255,255,255,0.7);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all 0.3s ease;backdrop-filter:var(--mr-glass-filter);-webkit-backdrop-filter:var(--mr-glass-filter);box-shadow:var(--mr-glass-shadow)}
.pcp-floating-play:hover{background:rgba(var(--mr-accent-rgb),0.085);color:#fff;border-color:rgba(var(--mr-accent-rgb),0.42);box-shadow:0 14px 38px rgba(var(--mr-accent-rgb),0.1),inset 0 1px 0 rgba(255,255,255,0.12)}
.pcp-floating-play:active{transform:scale(0.92)}

/* 进入动画（不使用both fill-mode，避免覆盖3D transform） */
@keyframes pcpFadeIn{from{opacity:0}to{opacity:1}}
.pc-player.active .pcp-dock{animation:pcpFadeIn 0.7s ease 0.3s}
.pc-player.active .pcp-topbar{animation:pcpFadeIn 0.5s ease 0.1s}
.pc-player.active .pcp-floating-play{animation:pcpFadeIn 0.7s ease 0.4s}

/* 弹窗浮于PC沉浸播放器之上 */
.modal-backdrop,.lyric-modal,#downloadModal{z-index:1200 !important}
@media(max-width:1280px){.pcp-right{width:min(320px,calc(100vw - 80px))}.pcp-dsp-panel,.pcp-more-panel{left:min(360px,calc(100vw - 520px))}}
@media(max-width:1100px){.pcp-right{width:min(280px,calc(100vw - 80px));left:16px}.pcp-dsp-panel,.pcp-more-panel{left:min(320px,calc(100vw - 480px));width:min(380px,calc(100vw - 360px))}}

/* ========== 通用工具类 ========== */
.hidden{display:none !important}

/* ========== 全局基础样式 ========== */
:root{
    --font-family:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;
    --primary-color:#d4a030;--accent-color:#00F5D4;--accent2:#b8860b;
    --bg-primary:#06060a;--bg-secondary:#111318;--bg-card:rgba(255,255,255,0.03);
    --text-primary:rgba(255,255,255,0.92);--text-secondary:rgba(255,255,255,0.55);--text-tertiary:rgba(255,255,255,0.30);
    --radius-sm:8px;--radius-md:12px;--radius-lg:16px;
    --primary-gradient:linear-gradient(135deg,#d4a030,#b8860b);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
    font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);
    -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;min-height:100vh;line-height:1.5;
}
.container{max-width:1200px;margin:0 auto;padding:0 16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ========== 按钮系统 ========== */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 20px;border-radius:var(--radius-sm);border:none;
    font-size:14px;font-weight:500;cursor:pointer;
    transition:all 0.2s ease;white-space:nowrap;
    -webkit-tap-highlight-color:transparent;
}
.btn:active{transform:scale(0.96)}
.btn-primary{background:var(--primary-gradient);color:#fff}
.btn-primary:hover{box-shadow:0 4px 16px rgba(212,160,48,0.35);transform:translateY(-1px)}
.btn-secondary{background:rgba(255,255,255,0.06);color:var(--text-secondary);border:1px solid rgba(255,255,255,0.08)}
.btn-secondary:hover{background:rgba(255,255,255,0.12);color:#fff}
.btn-sm{padding:6px 14px;font-size:12px;border-radius:6px}
.btn-danger{background:rgba(239,68,68,0.15);color:#ef4444;border:1px solid rgba(239,68,68,0.2)}
.btn-danger:hover{background:rgba(239,68,68,0.25);color:#f87171}

/* ========== 音乐列表项 ========== */
.music-item{
    display:flex;align-items:center;gap:14px;padding:10px 14px;
    border-radius:var(--radius-md);margin-bottom:6px;
    background:var(--bg-card);border:1px solid rgba(255,255,255,0.03);
    transition:background 0.2s ease,border-color 0.2s ease;cursor:pointer;
}
.music-item:hover{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.08)}
.music-item.playing{background:rgba(0,245,212,0.06);border-color:rgba(0,245,212,0.15)}

/* ========== 搜索骨架屏（加载占位，防止空白闪烁） ========== */
.music-skeleton{
    display:flex;align-items:center;gap:14px;padding:10px 14px;
    border-radius:var(--radius-md);margin-bottom:6px;
    background:var(--bg-card);border:1px solid rgba(255,255,255,0.03);
    pointer-events:none;
}
.music-skeleton .sk-cover{
    width:50px;height:50px;border-radius:10px;flex-shrink:0;
    background:rgba(255,255,255,0.05);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,0.08) 40%,rgba(255,255,255,0) 80%);
    background-size:200% 100%;background-repeat:no-repeat;
    animation:skShimmer 1.3s ease-in-out infinite;
}
.music-skeleton .sk-lines{flex:1;min-width:0}
.music-skeleton .sk-line{
    height:12px;border-radius:6px;margin-bottom:8px;
    background:rgba(255,255,255,0.05);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,0.08) 40%,rgba(255,255,255,0) 80%);
    background-size:200% 100%;background-repeat:no-repeat;
    animation:skShimmer 1.3s ease-in-out infinite;
}
.music-skeleton .sk-line-1{width:55%}
.music-skeleton .sk-line-2{width:35%;margin-bottom:0}
.music-skeleton .sk-actions{width:84px;height:30px;border-radius:8px;flex-shrink:0;background:rgba(255,255,255,0.05);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,0.08) 40%,rgba(255,255,255,0) 80%);background-size:200% 100%;background-repeat:no-repeat;animation:skShimmer 1.3s ease-in-out infinite}
@keyframes skShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.music-skeleton .sk-cover,.music-skeleton .sk-line,.music-skeleton .sk-actions{animation:none}}
.music-cover{width:50px;height:50px;border-radius:10px;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,0.04)}
.music-info{flex:1;min-width:0;overflow:hidden}
.music-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.music-artist{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.music-actions{display:flex;gap:6px;flex-shrink:0}
/* VIP/版权标记 */
.vip-badge{
    display:inline-block;font-size:9px;font-weight:700;
    padding:1px 4px;border-radius:3px;margin-left:4px;
    background:linear-gradient(135deg,#f59e0b,#ef4444);
    color:#fff;vertical-align:middle;line-height:1.4;
    flex-shrink:0
}

/* ========== 滚动淡入动画 ========== */
.scroll-fade-in{opacity:0;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s ease}
.scroll-fade-in.is-visible{opacity:1;transform:translateY(0)}
.hover-float{transition:transform 0.25s ease,box-shadow 0.25s ease}
.hover-float:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.2)}
.stagger-1{transition-delay:0.02s}.stagger-2{transition-delay:0.05s}
.stagger-3{transition-delay:0.08s}.stagger-4{transition-delay:0.11s}

/* ========== Tab导航 ========== */
.tabs{display:flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:rgba(255,255,255,0.03);flex-wrap:wrap}
.tab-item{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all 0.2s ease;white-space:nowrap}
.tab-item:hover{color:var(--text-primary);background:rgba(255,255,255,0.04)}
.tab-item.active{background:var(--primary-gradient);color:#fff}

/* ========== 搜索/表单 ========== */
.form-input{
    padding:10px 14px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,0.08);
    background:rgba(255,255,255,0.04);color:var(--text-primary);font-size:14px;outline:none;
    transition:border-color 0.2s;width:100%;
}
.form-input:focus{border-color:rgba(0,245,212,0.4)}
select.form-input{appearance:none;-webkit-appearance:none;cursor:pointer}

/* ========== 空状态 ========== */
.empty-state{text-align:center;padding:40px 20px;color:var(--text-tertiary);font-size:14px}
.empty-state i{display:block;font-size:32px;margin-bottom:10px;opacity:0.4}

/* ========== 搜索分页 ========== */
.search-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px 0 8px;flex-wrap:wrap}
.search-pager .btn{min-width:100px}
.search-pager .btn:disabled{opacity:0.35;cursor:not-allowed;pointer-events:none}
.search-page-info{font-size:14px;color:var(--text-secondary);font-weight:500;min-width:80px;text-align:center}

/* ========== 页面底部留白 ========== */
.main-wrap{padding-bottom:90px}

/* ========== 底部导航栏 ========== */
/* ── 移动端（<1024px）：胶囊玻璃风格，居中浮动 ── */
@media(max-width:1023px){
    .bottom-nav{
        position:fixed !important;
        bottom:calc(16px + env(safe-area-inset-bottom,0)) !important;
        left:50% !important;right:auto !important;
        transform:translateX(-50%) !important;
        z-index:1098 !important;
        display:flex !important;align-items:center !important;
        justify-content:center !important;gap:2px !important;
        height:56px !important;padding:0 16px !important;
        width:fit-content !important;min-width:auto !important;
        max-width:calc(100vw - 24px) !important;
        border-radius:9999px !important;
        box-shadow:0 8px 32px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.08) !important;
        transition:transform 0.3s cubic-bezier(.22,1,.36,1),opacity 0.3s ease;
        /* backdrop-filter 和 background 由 LiquidGlass v5 管理 */
        /* fallback：LiquidGlass 未加载前的基础玻璃背景 */
        background:rgba(15,23,42,0.35);
        backdrop-filter:blur(4px) saturate(1.6);
        -webkit-backdrop-filter:blur(4px) saturate(1.6);
        border:1px solid rgba(255,255,255,0.1);
    }
    .bottom-nav .nav-item{
        flex:0 0 auto;min-width:52px;
        display:flex;flex-direction:column;align-items:center;justify-content:center;
        gap:2px;color:rgba(255,255,255,0.45);text-decoration:none;
        font-size:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;
        padding:6px 12px;text-align:center;border-radius:9999px;
        transition:color 0.2s,background 0.2s;
    }
    .bottom-nav .nav-item span{
        max-height:0;overflow:hidden;opacity:0;
        transition:max-height 0.35s cubic-bezier(.32,.72,0,1),opacity 0.25s ease;
    }
    .bottom-nav .nav-item.active span{
        max-height:16px;opacity:1;
    }
    .bottom-nav .nav-item i{font-size:18px;color:inherit;transition:transform 0.3s cubic-bezier(.32,.72,0,1)}
    .bottom-nav .nav-item.active{color:#00F5D4}
    .bottom-nav .nav-item.active i{transform:scale(1.08)}
    .bottom-nav .nav-item:active{background:rgba(255,255,255,0.08)}
    .bottom-nav.hide-nav{transform:translateX(-50%) translateY(140%) !important;opacity:0;pointer-events:none}
    body.nav-hidden .bottom-nav{display:none !important}

    /* 底部导航滑块（iOS 26 App Store 横向椭圆形复刻） */
    .nav-slider {
        --slider-glow: rgba(255,255,255,0.08);
        position: absolute;
        top: 50%;
        left: 0;
        transform: translate3d(-50%, -50%, 0);
        width: 56px;
        height: 36px;
        border-radius: 18px;
        z-index: 10;
        cursor: grab;
        transition: left 0.5s cubic-bezier(0.32, 0.72, 0, 1), transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
        will-change: transform;
        pointer-events: auto;
        background: rgba(255,255,255,0.12);
        backdrop-filter: blur(6px) saturate(1.8) brightness(1.1);
        -webkit-backdrop-filter: blur(6px) saturate(1.8) brightness(1.1);
        border: 1px solid rgba(255,255,255,0.28);
        box-shadow:
            0 6px 20px rgba(0,0,0,0.35),
            0 0 16px var(--slider-glow),
            inset 0 1px 0 rgba(255,255,255,0.5),
            inset 0 -1px 0 rgba(0,0,0,0.14);
    }
    /* 拖拽中：降级 backdrop-filter 提升性能 */
    .nav-slider.dragging {
        backdrop-filter: blur(3px) saturate(1.3) !important;
        -webkit-backdrop-filter: blur(3px) saturate(1.3) !important;
        box-shadow:
            0 4px 12px rgba(0,0,0,0.3),
            inset 0 1px 0 rgba(255,255,255,0.4) !important;
    }
    .nav-slider:active { cursor: grabbing; transition: left 0.12s ease-out, transform 0.2s cubic-bezier(0.32, 0.72, 0, 1); }
    .nav-slider.dragging { transition: transform 0.15s cubic-bezier(0.32, 0.72, 0, 1); }

    /* v6: GlassWebGL 已移除，nav-slider 由 LiquidGlass v6 CSS 统一管理 */
    .nav-slider-inner {
        position: absolute;
        inset: 2px;
        border-radius: 16px;
        background:
            radial-gradient(ellipse 80% 60% at 38% 22%, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 35%, transparent 65%),
            linear-gradient(180deg, rgba(255,255,255,0.14) 0%, transparent 28%, transparent 72%, rgba(0,0,0,0.08) 100%);
        pointer-events: none;
    }
    /* 棱镜色散边缘 */
    .nav-slider::before {
        content: '';
        position: absolute;
        inset: -1px;
        border-radius: 19px;
        background: linear-gradient(135deg,
            rgba(255,80,80,0.14) 0%,
            rgba(255,255,255,0.22) 14%,
            transparent 34%,
            transparent 66%,
            rgba(255,255,255,0.18) 86%,
            rgba(80,170,255,0.14) 100%);
        pointer-events: none;
    }
}

/* ── PC端（≥1024px）：显示胶囊导航栏 ── */
@media(min-width:1024px){
    .bottom-nav{
        position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:999;
        display:flex;align-items:center;justify-content:center;gap:4px;
        height:60px;padding:0 20px;width:fit-content;min-width:auto;
        max-width:calc(100vw - 48px);
        border-radius:9999px;
        box-shadow:0 8px 32px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.08);
        transition:transform 0.4s cubic-bezier(0.22,1,0.36,1),opacity 0.4s ease;
        /* backdrop-filter 和 background 由 LiquidGlass v5 管理 */
        /* fallback：LiquidGlass 未加载前的基础玻璃背景 */
        background:rgba(15,23,42,0.35);
        backdrop-filter:blur(4px) saturate(1.6);
        -webkit-backdrop-filter:blur(4px) saturate(1.6);
        border:1px solid rgba(255,255,255,0.1);
    }
    .bottom-nav .nav-item{
        flex:0 0 auto;min-width:60px;
        display:flex;flex-direction:column;align-items:center;justify-content:center;
        gap:2px;color:rgba(255,255,255,0.5);text-decoration:none;
        font-size:11px;cursor:pointer;padding:6px 14px;border-radius:9999px;
        transition:color 0.2s,background 0.2s;
    }
    .bottom-nav .nav-item span{
        max-height:0;overflow:hidden;opacity:0;
        transition:max-height 0.35s cubic-bezier(.32,.72,0,1),opacity 0.25s ease;
    }
    .bottom-nav .nav-item.active span{
        max-height:18px;opacity:1;
    }
    .bottom-nav .nav-item i{font-size:18px;color:inherit;transition:transform 0.3s cubic-bezier(.32,.72,0,1)}
    .bottom-nav .nav-item:hover{color:#00F5D4;background:rgba(255,255,255,0.06)}
    .bottom-nav .nav-item.active{color:#00F5D4}
    .bottom-nav .nav-item.active i{transform:scale(1.08)}
    .bottom-nav.hide-nav{transform:translateX(-50%) translateY(140%);opacity:0;pointer-events:none}
    body.nav-hidden .bottom-nav{display:none !important}

    /* 底部导航滑块（iOS 26 App Store 横向椭圆形复刻）— PC端 */
    .nav-slider {
        --slider-glow: rgba(255,255,255,0.08);
        position: absolute;
        top: 50%;
        left: 0;
        transform: translate3d(-50%, -50%, 0);
        width: 60px;
        height: 38px;
        border-radius: 19px;
        z-index: 10;
        cursor: grab;
        transition: left 0.5s cubic-bezier(0.32, 0.72, 0, 1), transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
        will-change: transform;
        pointer-events: auto;
        background: rgba(255,255,255,0.12);
        backdrop-filter: blur(8px) saturate(2.0) brightness(1.12);
        -webkit-backdrop-filter: blur(8px) saturate(2.0) brightness(1.12);
        border: 1px solid rgba(255,255,255,0.28);
        box-shadow:
            0 8px 24px rgba(0,0,0,0.38),
            0 2px 8px rgba(0,0,0,0.22),
            0 0 20px var(--slider-glow),
            inset 0 1px 0 rgba(255,255,255,0.5),
            inset 0 -1px 0 rgba(0,0,0,0.14),
            inset 1px 0 1px rgba(255,255,255,0.38),
            inset -1px 0 1px rgba(0,0,0,0.10),
            inset 2px 0 3px rgba(255,90,90,0.06),
            inset -2px 0 3px rgba(90,170,255,0.06);
    }
    /* 拖拽中：降级 backdrop-filter 提升性能 */
    .nav-slider.dragging {
        backdrop-filter: blur(4px) saturate(1.4) !important;
        -webkit-backdrop-filter: blur(4px) saturate(1.4) !important;
        box-shadow:
            0 4px 12px rgba(0,0,0,0.3),
            inset 0 1px 0 rgba(255,255,255,0.4) !important;
    }
    .nav-slider:active { cursor: grabbing; transition: left 0.12s ease-out, transform 0.2s cubic-bezier(0.32, 0.72, 0, 1); }
    .nav-slider.dragging { transition: transform 0.15s cubic-bezier(0.32, 0.72, 0, 1); }
    .nav-slider-inner {
        position: absolute;
        inset: 2px;
        border-radius: 17px;
        background:
            radial-gradient(ellipse 80% 60% at 38% 22%, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 35%, transparent 65%),
            linear-gradient(180deg, rgba(255,255,255,0.14) 0%, transparent 28%, transparent 72%, rgba(0,0,0,0.08) 100%);
        pointer-events: none;
    }
    .nav-slider::before {
        content: '';
        position: absolute;
        inset: -1px;
        border-radius: 20px;
        background: linear-gradient(135deg,
            rgba(255,80,80,0.14) 0%,
            rgba(255,255,255,0.22) 14%,
            transparent 34%,
            transparent 66%,
            rgba(255,255,255,0.18) 86%,
            rgba(80,170,255,0.14) 100%);
        pointer-events: none;
        mix-blend-mode: screen;
    }
    .nav-slider::after {
        content: '';
        position: absolute;
        bottom: -2px;
        left: 20%;
        right: 20%;
        height: 4px;
        border-radius: 50%;
        background: rgba(0,0,0,0.22);
        filter: blur(3px);
        pointer-events: none;
        z-index: -1;
    }
}
/* 全屏展开播放器层级需高于底部导航(1098)与播放栏(1099)，避免被其遮挡 */
.player-expand-modal{z-index:1100 !important}

/* ========== 拟人聊天工具 ========== */
/* ── 工具卡片网格：统一自动布局 ── */
.tools-hub-grid-top{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
.tools-hub-all-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:768px){
    .tools-hub-grid-top{grid-template-columns:1fr 1fr;gap:10px}
    .tools-hub-all-grid{grid-template-columns:repeat(2,1fr);gap:10px}
}


/* ========== 轮播广告位 ========== */
.ad-carousel { position: relative; border-radius: 16px; overflow: hidden; margin-bottom: 24px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
.ad-carousel-viewport { overflow: hidden; border-radius: 16px; }
.ad-carousel-track { display: flex; transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.ad-slide { min-width: 100%; flex-shrink: 0; }
.ad-slide-inner { height: 120px; display: flex; align-items: center; justify-content: center; padding: 0 24px; cursor: pointer; position: relative; overflow: hidden; }
.ad-slide-inner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 100%); pointer-events: none; }
.ad-slide-text { text-align: center; z-index: 1; }
.ad-slide-text h3 { font-size: 20px; font-weight: 700; color: #fff; margin: 0 0 4px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.ad-slide-text p { font-size: 13px; color: rgba(255,255,255,0.9); margin: 0; text-shadow: 0 1px 4px rgba(0,0,0,0.3); }
.ad-carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: none; border-radius: 50%; background: rgba(0,0,0,0.35); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 12px; z-index: 3; transition: background 0.2s, opacity 0.2s; opacity: 0; }
.ad-carousel:hover .ad-carousel-btn { opacity: 1; }
.ad-carousel-btn:hover { background: rgba(0,0,0,0.6); }
.ad-carousel-prev { left: 8px; }
.ad-carousel-next { right: 8px; }
.ad-carousel-dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 3; }
.ad-carousel-dots .ad-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.4); cursor: pointer; transition: all 0.3s; }
.ad-carousel-dots .ad-dot.active { background: #fff; width: 18px; border-radius: 3px; }


#home-page { max-width: 900px; margin: 0 auto; padding: 0 16px 80px; }

/* Hero */
.home-hero { position: relative; border-radius: 24px; overflow: hidden; padding: 48px 24px 40px; text-align: center; margin-bottom: 24px; }
.home-hero-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); z-index: 0; }
.home-hero-bg::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 20%, rgba(244,210,138,0.15), transparent 60%), radial-gradient(ellipse at 70% 80%, rgba(100,149,237,0.12), transparent 60%); }
.home-hero-content { position: relative; z-index: 1; }
.home-logo { width: 72px; height: 72px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; border-radius: 20px; background: rgba(244,210,138,0.12); border: 1px solid rgba(244,210,138,0.25); }
.home-logo-text { font-size: 36px; font-weight: 800; background: linear-gradient(135deg, #F4D28A, #D4A85A); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.home-title { font-size: 28px; font-weight: 800; margin: 0 0 8px; background: linear-gradient(135deg, #F4D28A, #fff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.home-subtitle { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0 0 12px; }
.home-desc { font-size: 15px; color: rgba(255,255,255,0.8); max-width: 480px; margin: 0 auto 24px; line-height: 1.6; }
.home-hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.home-btn-primary { display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border: none; border-radius: 14px; font-size: 15px; font-weight: 600; color: #1a1a2e; background: linear-gradient(135deg, #F4D28A, #D4A85A); cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.home-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(244,210,138,0.3); }
.home-btn-secondary { display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border-radius: 14px; font-size: 15px; font-weight: 600; color: #fff; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); text-decoration: none; transition: transform 0.2s, background 0.2s; }
.home-btn-secondary:hover { transform: translateY(-2px); background: rgba(255,255,255,0.15); }

/* Stats grid */
.home-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 28px; }
.home-card { display: flex; align-items: center; gap: 12px; padding: 16px; border-radius: 16px; background: var(--glass-bg, rgba(255,255,255,0.06)); border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); }
.home-card-icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: rgba(244,210,138,0.12); color: #F4D28A; font-size: 18px; flex-shrink: 0; }
.home-card-num { font-size: 18px; font-weight: 700; color: #fff; line-height: 1.2; }
.home-card-label { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }

/* Sections */
.home-section { margin-bottom: 28px; }
.home-section-title { font-size: 18px; font-weight: 700; margin: 0 0 16px; display: flex; align-items: center; gap: 8px; color: #fff; }
.home-section-title i { color: #F4D28A; }

/* Features */
.home-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.home-feature { padding: 18px; border-radius: 16px; background: var(--glass-bg, rgba(255,255,255,0.06)); border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); transition: transform 0.2s; }
.home-feature:hover { transform: translateY(-3px); }
.home-feature-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 18px; margin-bottom: 12px; }
.home-feature h3 { font-size: 15px; font-weight: 600; margin: 0 0 6px; color: #fff; }
.home-feature p { font-size: 13px; color: rgba(255,255,255,0.55); margin: 0; line-height: 1.5; }

/* Extension card */
.home-ext-card { padding: 20px; border-radius: 18px; background: var(--glass-bg, rgba(255,255,255,0.06)); border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); }
.home-ext-info { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.home-ext-logo { width: 52px; height: 52px; border-radius: 14px; background: rgba(26,26,46,0.8); border: 1px solid rgba(244,210,138,0.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.home-ext-info h3 { font-size: 16px; font-weight: 700; margin: 0 0 6px; color: #fff; }
.home-ext-info p { font-size: 13px; color: rgba(255,255,255,0.55); margin: 0; line-height: 1.5; }
.home-ext-steps { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.home-ext-actions { margin: 14px 0; }
.home-ext-download { display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border-radius: 12px; font-size: 15px; font-weight: 600; color: #1a1a2e; background: linear-gradient(135deg, #F4D28A, #D4A85A); text-decoration: none; transition: transform 0.2s, box-shadow 0.2s; }
.home-ext-download:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(244,210,138,0.3); }
.home-ext-step { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,0.04); font-size: 13px; color: rgba(255,255,255,0.7); }
.step-num { width: 22px; height: 22px; border-radius: 50%; background: rgba(244,210,138,0.15); color: #F4D28A; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; }

/* Links */
.home-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.home-link-card { display: flex; align-items: center; gap: 14px; padding: 18px; border-radius: 16px; background: var(--glass-bg, rgba(255,255,255,0.06)); border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); text-decoration: none; cursor: pointer; transition: transform 0.2s, border-color 0.2s; }
.home-link-card:hover { transform: translateY(-2px); border-color: rgba(244,210,138,0.3); }
.home-link-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.home-link-website .home-link-icon { background: linear-gradient(135deg, #4facfe, #00f2fe); color: #fff; }
.home-link-donate .home-link-icon { background: linear-gradient(135deg, #fa709a, #fee140); color: #fff; }
.home-link-body { flex: 1; }
.home-link-body h3 { font-size: 15px; font-weight: 600; margin: 0 0 4px; color: #fff; }
.home-link-body p { font-size: 13px; color: rgba(255,255,255,0.5); margin: 0; }
.home-link-arrow { font-size: 13px; color: #F4D28A; font-weight: 600; }

/* Donate modal */
.home-donate-modal { position: fixed; inset: 0; z-index: 10000; display: none; align-items: center; justify-content: center; }
.home-donate-modal.active { display: flex; }
.home-donate-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(4px); }
.home-donate-content { position: relative; background: #1a1a2e; border-radius: 20px; padding: 32px; text-align: center; max-width: 340px; border: 1px solid rgba(244,210,138,0.2); }
.home-donate-close { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border: none; border-radius: 50%; background: rgba(255,255,255,0.1); color: #fff; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.home-donate-close:hover { background: rgba(255,255,255,0.2); }
.home-donate-content h3 { font-size: 18px; font-weight: 700; margin: 0 0 16px; color: #fff; }
.home-donate-qr { width: 240px; height: 240px; border-radius: 12px; object-fit: cover; }
.home-donate-content p { font-size: 14px; color: rgba(255,255,255,0.6); margin: 12px 0 0; }

/* Footer */
.home-footer { text-align: center; padding: 24px 0 8px; }
.home-footer p { font-size: 13px; color: rgba(255,255,255,0.4); margin: 4px 0; }
.home-footer-copy { font-size: 12px !important; opacity: 0.7; }

/* 响应式 */
@media (max-width: 600px) {
    .home-grid { grid-template-columns: 1fr; }
    .home-features { grid-template-columns: 1fr; }
    .home-hero { padding: 32px 16px 28px; }
    .home-title { font-size: 24px; }
    .home-ext-info { flex-direction: column; }
}

/* ========== 移动端迷你播放栏 ========== */













/* ========== 移动端展开播放器 ========== */



























/* ===================== 手机端播放栏 Mineradio 风格 ===================== */
@media(max-width:1023px){
    /* 播放栏：浮动卡片，位于胶囊导航上方 */
    .player-bar{
        position:fixed !important;
        bottom:calc(84px + env(safe-area-inset-bottom,0)) !important;
        left:10px !important;right:10px !important;
        z-index:1099 !important;
        height:60px !important;border-radius:16px !important;
        padding:0 14px !important;padding-bottom:0 !important;
        gap:10px !important;
        background:rgba(12,13,18,0.88) !important;
        backdrop-filter:none !important;
        -webkit-backdrop-filter:none !important;
        border:0.5px solid rgba(255,255,255,0.08) !important;
        box-shadow:0 8px 32px rgba(0,0,0,0.3) !important;
        animation:none !important;
    }
    /* 进度条：贴顶，纤细带青光 */
    .player-bar .player-progress{
        position:absolute !important;top:0 !important;left:0 !important;right:0 !important;
        height:2px !important;background:rgba(255,255,255,0.04) !important;
        border-radius:0 !important;cursor:pointer;z-index:3;
    }
    .player-bar .progress-bar{
        background:linear-gradient(90deg,rgba(255,255,255,0.85),#00F5D4) !important;
        box-shadow:0 0 8px rgba(0,245,212,0.25) !important;
        border-radius:0 !important;animation:none !important;
    }
    .player-bar .progress-bar::after{display:none !important}
    /* 封面：简洁圆角方块，去掉黑胶唱片效果 */
    .player-bar .player-cover-wrap{
        width:42px !important;height:42px !important;flex-shrink:0;
        border-radius:10px !important;overflow:hidden;
    }
    .player-bar .player-cover-wrap::before,
    .player-bar .player-cover-wrap::after{display:none !important}
    .player-bar .player-cover{
        border-radius:10px !important;width:100% !important;height:100% !important;
        box-shadow:none !important;
    }
    .player-bar .player-cover-wrap.playing .player-cover{animation:none !important}
    /* 歌曲信息 */
    .player-bar .player-info{flex:1;min-width:0;overflow:hidden}
    .player-bar .player-name{
        color:rgba(255,255,255,0.95) !important;font-size:14px !important;
        font-weight:600 !important;letter-spacing:0.2px !important;
    }
    .player-bar .player-artist{
        color:rgba(255,255,255,0.4) !important;font-size:12px !important;
    }
    /* 隐藏时间、音质按钮（空间不足） */
    .player-bar .player-time{display:none !important}
    .player-bar .player-quality{display:none !important}
    /* 控制按钮组 */
    .player-bar .player-controls{gap:4px !important;flex-shrink:0}
    .player-bar .player-controls .btn-icon{
        width:36px !important;height:36px !important;
        background:transparent !important;
        color:rgba(255,255,255,0.65) !important;
        font-size:15px !important;border:none !important;
    }
    .player-bar .player-controls .btn-icon:hover{
        color:#00F5D4 !important;background:transparent !important;
        transform:scale(1.1);text-shadow:0 0 10px rgba(0,245,212,0.3);
    }
    .player-bar .player-controls .btn-icon:active{transform:scale(0.92)}
    /* 播放/暂停：Mineradio 玻璃圆钮 */
    .player-bar .btn-play{
        width:44px !important;height:44px !important;
        border-radius:50% !important;
        background:rgba(255,255,255,0.08) !important;
        backdrop-filter:none !important;
        -webkit-backdrop-filter:none !important;
        color:rgba(255,255,255,0.98) !important;
        border:0.5px solid rgba(255,255,255,0.12) !important;
        box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.2),
                   inset 0 0 10px 3px rgba(255,255,255,0.06),
                   0 4px 16px rgba(0,0,0,0.2) !important;
        font-size:16px !important;
    }
    .player-bar .btn-play:hover{
        background:rgba(255,255,255,0.12) !important;
        box-shadow:inset 0 0 2px 1px rgba(255,255,255,0.3),
                   inset 0 0 12px 4px rgba(255,255,255,0.08),
                   0 6px 20px rgba(0,0,0,0.25),
                   0 0 14px rgba(0,245,212,0.1) !important;
    }
    .player-bar .btn-play:active{transform:scale(0.93) !important}
    /* mini-viz 隐藏 */
    .player-bar .mini-viz{display:none !important}
    /* 播放栏可见时：需容纳胶囊导航(72px)+播放栏(84+60=144px) */
    body:has(.player-bar:not(.hidden)){padding-bottom:160px}
    /* 兜底：不支持 :has 的浏览器 */
    @supports not selector(:has(*)){
        .player-bar:not(.hidden) ~ .main-wrap,
        .player-bar:not(.hidden) ~ .content-wrap{padding-bottom:160px}
    }
    /* 歌词按钮在极窄屏幕隐藏 */
    @media(max-width:380px){
        .player-bar .player-controls .btn-icon:last-child{display:none !important}
    }
    /* 展开播放器弹窗 */
    .player-expand-modal{background:rgba(8,9,11,0.92) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
    .expand-song-name{color:#fff !important;text-shadow:rgba(0,245,212,0.2) 0 0 14px !important}
    .expand-viz-toggle.active{background:linear-gradient(135deg,#00F5D4 0%,#00b894 100%) !important;box-shadow:0 0 18px rgba(0,245,212,0.5) !important}
    /* 移动端禁用桌面级动画：scroll-fade-in / hover-float / stagger 全部即时显示，避免 30 项动画重算 */
    .music-item.scroll-fade-in{opacity:1 !important;transform:none !important;transition:background 0.15s ease,border-color 0.15s ease !important}
    .music-item.hover-float,.music-item.hover-float:hover{transform:none !important;box-shadow:none !important}
    .music-item.stagger-1,.music-item.stagger-2,.music-item.stagger-3,.music-item.stagger-4{transition-delay:0s !important}
    /* 移动端列表项：去掉 backdrop-filter（30 项 blur 是性能杀手），紧凑化布局 */
    .music-item{
        padding:8px 12px !important;margin-bottom:4px !important;
        backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
        background:rgba(20,20,28,0.55) !important;
        border:0.5px solid rgba(255,255,255,0.04) !important;
        border-radius:10px !important;
    }
    .music-item .music-cover{width:44px;height:44px;border-radius:8px}
    /* 移动端所有卡片去掉 backdrop-filter，用纯色半透明背景替代 */
    .download-card,.profile-card,.share-card,.setting-card,.playlist-card,.video-card{
        backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
        background:rgba(20,25,40,0.55) !important
    }
    /* 移动端搜索栏/输入框去掉 backdrop-filter */
    .search-input,.search-select,.form-input,.tool-search-input{
        backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
        background:rgba(13,13,21,0.5) !important
    }
    .music-item .music-name{font-size:14px}
    .music-item .music-artist{font-size:11px}
    .music-item .music-actions{gap:4px !important;flex-shrink:0 !important;width:auto !important;margin-top:0 !important}
    .music-item .music-actions .btn{padding:4px 8px !important;font-size:11px !important;white-space:nowrap !important;width:auto !important}
    .music-item .music-actions .btn i{font-size:10px}
    /* 搜索栏去掉 backdrop-filter */
    #music-tool .search-bar{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:rgba(20,20,28,0.6) !important}
}

/* ================================================================
   手机端音乐播放器 · 拟物风 (Neumorphic Soft UI)
   凹凸有致：凸起按钮 / 凹陷进度槽 / 凹陷封面井 / 青色点缀
   覆盖 #playerExpandModal 展开播放器，不影响桌面端
   ================================================================ */
#playerExpandModal{
  --neu-bg:#26292e;
  --neu-surface:#2c2f35;
  --neu-dark:rgba(0,0,0,0.62);
  --neu-light:rgba(255,255,255,0.06);
  --neu-accent:#5eead4;
  --neu-glow:rgba(94,234,212,0.45);
  background:var(--neu-bg) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* 默认遮罩透明，露出干净拟物底面；自定义背景时由媒体层自行呈现 */
#playerExpandModal .expand-bg-mask{background:transparent !important}
#playerExpandModal .expand-bg-media{opacity:.9}

/* —— 关闭按钮：凸起圆 —— */
#playerExpandModal .expand-close{
  width:46px;height:46px;border:none;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#32353b 0%,var(--neu-bg) 78%);color:var(--neu-accent);
  box-shadow:5px 5px 12px var(--neu-dark),-5px -5px 12px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-close:hover{color:#fff}
#playerExpandModal .expand-close:active{
  box-shadow:inset 4px 4px 9px var(--neu-dark),inset -4px -4px 9px var(--neu-light);
}

/* —— 歌曲信息：青色发光标题 —— */
#playerExpandModal .expand-song-name{
  color:var(--neu-accent) !important;
  text-shadow:0 0 16px var(--neu-glow) !important;
  letter-spacing:.3px;
}
#playerExpandModal .expand-song-artist{color:rgba(255,255,255,0.42) !important}

/* —— 封面：凹陷井 + 凸起唱片 —— */
#playerExpandModal .expand-cover-wrapper::before{
  width:88%;
  background:var(--neu-bg) !important;
  box-shadow:inset 8px 8px 18px var(--neu-dark),inset -8px -8px 18px var(--neu-light) !important;
  border-radius:50%;
}
#playerExpandModal .expand-cover{
  width:66%;
  border-radius:50%;border:none;
  box-shadow:8px 8px 22px var(--neu-dark),-8px -8px 22px var(--neu-light),0 0 34px var(--neu-glow);
}
#playerExpandModal .expand-cover-wrapper::after{
  width:46px;height:46px;
  background:var(--neu-surface);border:none;z-index:3;
  box-shadow:3px 3px 7px var(--neu-dark),-3px -3px 7px var(--neu-light),inset 0 0 0 2px var(--neu-bg);
}

/* —— 进度条：凹陷槽 + 青色填充 + 凸起手柄 —— */
#playerExpandModal .expand-progress{
  height:9px;background:var(--neu-bg) !important;border-radius:9999px;
  box-shadow:inset 3px 3px 7px var(--neu-dark),inset -3px -3px 7px var(--neu-light);
}
#playerExpandModal .expand-progress-bar{
  background:var(--neu-accent) !important;background-size:100% 100% !important;animation:none !important;
  box-shadow:0 0 10px var(--neu-glow);
}
#playerExpandModal .expand-progress-handle{
  width:19px;height:19px;background:var(--neu-surface);border:none;
  box-shadow:2px 2px 5px var(--neu-dark),-2px -2px 5px var(--neu-light),0 0 9px var(--neu-glow);
}
#playerExpandModal .expand-time-current,
#playerExpandModal .expand-time-total{color:rgba(255,255,255,0.4) !important}

/* —— 次级控制按钮：凸起圆 —— */
#playerExpandModal .expand-btn{
  border:none;border-radius:50%;background:radial-gradient(circle at 32% 28%,#32353b 0%,var(--neu-bg) 78%);
  color:rgba(255,255,255,0.8);
  box-shadow:5px 5px 11px var(--neu-dark),-5px -5px 11px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-btn:hover{color:var(--neu-accent)}
#playerExpandModal .expand-btn:active{
  box-shadow:inset 4px 4px 9px var(--neu-dark),inset -4px -4px 9px var(--neu-light);
}
#playerExpandModal #expandFavBtn .fas,
#playerExpandModal #expandLoopBtn.active{color:var(--neu-accent)}

/* —— 主播放按钮：更大的凸起圆 + 青色高光环 —— */
#playerExpandModal .expand-btn-play{
  border:none;border-radius:50%;background:radial-gradient(circle at 32% 28%,#33363c 0%,var(--neu-bg) 78%);color:var(--neu-accent);
  box-shadow:7px 7px 16px var(--neu-dark),-7px -7px 16px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.28);
  transition:box-shadow .2s ease,color .2s ease;
}
#playerExpandModal .expand-btn-play:hover{
  box-shadow:7px 7px 16px var(--neu-dark),-7px -7px 16px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.45),0 0 24px var(--neu-glow);
}
#playerExpandModal .expand-btn-play:active{
  box-shadow:inset 5px 5px 11px var(--neu-dark),inset -5px -5px 11px var(--neu-light);
}

/* —— 背景设置/可视化按钮：凸起小圆 —— */
#playerExpandModal .expand-bg-setup{
  border:none;background:radial-gradient(circle at 32% 28%,#31343a 0%,var(--neu-bg) 78%);color:rgba(255,255,255,0.68);
  box-shadow:4px 4px 9px var(--neu-dark),-4px -4px 9px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-bg-setup:active{
  box-shadow:inset 3px 3px 7px var(--neu-dark),inset -3px -3px 7px var(--neu-light);
}
#playerExpandModal .expand-viz-toggle.active{
  background:var(--neu-bg) !important;color:var(--neu-accent) !important;
  box-shadow:4px 4px 9px var(--neu-dark),-4px -4px 9px var(--neu-light),inset 0 0 0 1px var(--neu-accent),0 0 14px var(--neu-glow) !important;
}

/* === Mobile Player Fixes === */
/* Disable transitions during drag to prevent lag */
.expand-progress.dragging .expand-progress-bar,
.expand-progress.dragging .expand-progress-handle {
    transition: none !important;
}
/* Smooth progress without jitter on mobile */
@media(max-width:768px){
    .expand-progress-bar{transition:width 0.3s linear !important}
    .expand-progress-handle{transition:left 0.3s linear !important}
    /* Hide viz canvas on mobile to prevent crash from heavy canvas ops */
    #vizCanvas{display:none !important}
    /* Reduce particle load */
    .expand-cover-wrapper{will-change:transform}
}

/* 音乐粒子可视化 (Particle Visualizer) */
.viz-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}
.expand-viz-toggle{right:64px !important}
.expand-viz-toggle.active{background:linear-gradient(135deg,#d4a030 0%,#b8860b 100%) !important;color:#fff !important;box-shadow:0 0 18px rgba(184,134,11,0.65)}
.expand-viz-toggle.active i{animation:vizPulse 1.6s ease-in-out infinite}
@keyframes vizPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.75}}
.mini-viz{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.5;border-radius:inherit;display:block}
.player-bar>.player-cover-wrap,.player-bar>.player-info,.player-bar>.player-controls,.player-bar>.player-time,.player-bar>.player-quality{position:relative;z-index:1}
.player-bar>.player-progress{z-index:2}
.player-cover-wrap.playing::after{content:'';position:absolute;inset:-7px;border-radius:50%;background:radial-gradient(circle,rgba(184,134,11,0.45) 0%,rgba(236,72,153,0.25) 50%,transparent 70%);filter:blur(3px);z-index:-1;animation:coverGlow 2.4s ease-in-out infinite}
@keyframes coverGlow{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.14);opacity:.95}}
@media(max-width:480px){.expand-viz-toggle{right:60px !important}}

/* ===================== 歌单解析 ===================== */
#import-tab{max-width:900px;margin:0 auto}
.import-tips{background:rgba(255,255,255,0.02);border-radius:12px;padding:12px 16px;border:1px solid rgba(255,255,255,0.04)}
.import-tips b{color:var(--accent-color,#00F5D4)}
#importSource,#importType{padding:8px 12px;border-radius:12px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:var(--text-secondary,#aaa);font-size:13px;cursor:pointer;outline:none}
#importSource:focus,#importType:focus{border-color:rgba(0,245,212,0.3)}
.import-playlist-info{display:flex;gap:20px;align-items:center;margin-bottom:24px;padding:20px;background:linear-gradient(135deg,rgba(0,245,212,0.04),rgba(255,255,255,0.02));border-radius:16px;border:1px solid rgba(255,255,255,0.06)}
.import-playlist-cover{width:100px;height:100px;border-radius:16px;object-fit:cover;flex-shrink:0;box-shadow:0 8px 24px rgba(0,0,0,0.3)}
.import-playlist-meta{flex:1;min-width:0}
.import-playlist-meta h3{font-size:20px;font-weight:700;color:var(--text-primary,#fff);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.import-playlist-meta p{font-size:13px;color:var(--text-tertiary,#666);margin:0 0 14px}
.import-playlist-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-sm{padding:6px 14px;font-size:12px;border-radius:10px}
#importResult .music-list{list-style:none;padding:0;margin:0}
#importResult .music-item{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:14px;margin-bottom:6px;transition:all 0.25s ease;cursor:pointer}
#importResult .music-item:hover{background:rgba(255,255,255,0.03);transform:translateX(4px)}
#importResult .music-cover{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0}
#importResult .music-info{flex:1;min-width:0}
#importResult .music-name{font-size:14px;font-weight:600;color:var(--text-primary,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#importResult .music-artist{font-size:12px;color:var(--text-tertiary,#666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
#importResult .music-actions{display:flex;gap:6px;flex-shrink:0}
/* ===================== 搜索分页 ===================== */
.search-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px 0 8px;flex-wrap:wrap}
.search-pager .btn{min-width:100px}
.search-pager .btn:disabled{opacity:0.35;cursor:not-allowed;pointer-events:none}
.search-page-info{font-size:14px;color:var(--text-secondary,#aaa);font-weight:500;min-width:80px;text-align:center}
/* ===================== 专辑解析 ===================== */
#importResult .album-info{display:flex;gap:20px;align-items:center;margin-bottom:24px;padding:20px;background:linear-gradient(135deg,rgba(0,245,212,0.06),rgba(255,255,255,0.02));border-radius:16px;border:1px solid rgba(255,255,255,0.06)}
#importResult .album-cover{width:120px;height:120px;border-radius:16px;object-fit:cover;flex-shrink:0;box-shadow:0 8px 24px rgba(0,0,0,0.3)}
#importResult .album-meta{flex:1;min-width:0}
#importResult .album-meta h3{font-size:20px;font-weight:700;color:var(--text-primary,#fff);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#importResult .album-meta p{font-size:13px;color:var(--text-tertiary,#666);margin:0 0 14px}
#importResult .album-actions{display:flex;gap:10px;flex-wrap:wrap}

/* === 性能优化（流畅度提升） === */
/* 列表项与卡片布局隔离，缩小重排范围，配合 DocumentFragment 批量插入更流畅 */
.music-item,.video-card,.wall-item,.news-card,.emoji-item,.tools-hub-card,.history-item,.lot-item{contain:layout style}
/* 滚动容器隔离滚动链，避免嵌套滚动穿透到页面，提升滚动体验 */
#ncReadContent,.music-list,.wall-grid,.emoji-grid,.quiz-area,#aiChatContainer{overscroll-behavior:contain}
/* 悬浮/过渡元素预提升合成层，减少重绘开销 */
.tools-hub-card,.nav-item,.music-item,.video-card{backface-visibility:hidden}

/* ================================================================
   手机端音乐播放器 · 拟物风 (Neumorphic Soft UI)
   凹凸有致：凸起按钮 / 凹陷进度槽 / 凹陷封面井 / 青色点缀
   覆盖 #playerExpandModal 展开播放器，不影响桌面端
   ================================================================ */
#playerExpandModal{
  --neu-bg:#26292e;
  --neu-surface:#2c2f35;
  --neu-dark:rgba(0,0,0,0.62);
  --neu-light:rgba(255,255,255,0.06);
  --neu-accent:#5eead4;
  --neu-glow:rgba(94,234,212,0.45);
  background:var(--neu-bg) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* 默认遮罩透明，露出干净拟物底面；自定义背景时由媒体层自行呈现 */
#playerExpandModal .expand-bg-mask{background:transparent !important}
#playerExpandModal .expand-bg-media{opacity:.9}

/* —— 关闭按钮：凸起圆 —— */
#playerExpandModal .expand-close{
  width:46px;height:46px;border:none;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#32353b 0%,var(--neu-bg) 78%);color:var(--neu-accent);
  box-shadow:5px 5px 12px var(--neu-dark),-5px -5px 12px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-close:hover{color:#fff}
#playerExpandModal .expand-close:active{
  box-shadow:inset 4px 4px 9px var(--neu-dark),inset -4px -4px 9px var(--neu-light);
}

/* —— 歌曲信息：青色发光标题 —— */
#playerExpandModal .expand-song-name{
  color:var(--neu-accent) !important;
  text-shadow:0 0 16px var(--neu-glow) !important;
  letter-spacing:.3px;
}
#playerExpandModal .expand-song-artist{color:rgba(255,255,255,0.42) !important}

/* —— 封面：凹陷井 + 凸起唱片 —— */
#playerExpandModal .expand-cover-wrapper::before{
  width:88%;
  background:var(--neu-bg) !important;
  box-shadow:inset 8px 8px 18px var(--neu-dark),inset -8px -8px 18px var(--neu-light) !important;
  border-radius:50%;
}
#playerExpandModal .expand-cover{
  width:66%;
  border-radius:50%;border:none;
  box-shadow:8px 8px 22px var(--neu-dark),-8px -8px 22px var(--neu-light),0 0 34px var(--neu-glow);
}
#playerExpandModal .expand-cover-wrapper::after{
  width:46px;height:46px;
  background:var(--neu-surface);border:none;z-index:3;
  box-shadow:3px 3px 7px var(--neu-dark),-3px -3px 7px var(--neu-light),inset 0 0 0 2px var(--neu-bg);
}

/* —— 进度条：凹陷槽 + 青色填充 + 凸起手柄 —— */
#playerExpandModal .expand-progress{
  height:9px;background:var(--neu-bg) !important;border-radius:9999px;
  box-shadow:inset 3px 3px 7px var(--neu-dark),inset -3px -3px 7px var(--neu-light);
}
#playerExpandModal .expand-progress-bar{
  background:var(--neu-accent) !important;background-size:100% 100% !important;animation:none !important;
  box-shadow:0 0 10px var(--neu-glow);
}
#playerExpandModal .expand-progress-handle{
  width:19px;height:19px;background:var(--neu-surface);border:none;
  box-shadow:2px 2px 5px var(--neu-dark),-2px -2px 5px var(--neu-light),0 0 9px var(--neu-glow);
}
#playerExpandModal .expand-time-current,
#playerExpandModal .expand-time-total{color:rgba(255,255,255,0.4) !important}

/* —— 次级控制按钮：凸起圆 —— */
#playerExpandModal .expand-btn{
  border:none;border-radius:50%;background:radial-gradient(circle at 32% 28%,#32353b 0%,var(--neu-bg) 78%);
  color:rgba(255,255,255,0.8);
  box-shadow:5px 5px 11px var(--neu-dark),-5px -5px 11px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-btn:hover{color:var(--neu-accent)}
#playerExpandModal .expand-btn:active{
  box-shadow:inset 4px 4px 9px var(--neu-dark),inset -4px -4px 9px var(--neu-light);
}
#playerExpandModal #expandFavBtn .fas,
#playerExpandModal #expandLoopBtn.active{color:var(--neu-accent)}

/* —— 主播放按钮：更大的凸起圆 + 青色高光环 —— */
#playerExpandModal .expand-btn-play{
  border:none;border-radius:50%;background:radial-gradient(circle at 32% 28%,#33363c 0%,var(--neu-bg) 78%);color:var(--neu-accent);
  box-shadow:7px 7px 16px var(--neu-dark),-7px -7px 16px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.28);
  transition:box-shadow .2s ease,color .2s ease;
}
#playerExpandModal .expand-btn-play:hover{
  box-shadow:7px 7px 16px var(--neu-dark),-7px -7px 16px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.45),0 0 24px var(--neu-glow);
}
#playerExpandModal .expand-btn-play:active{
  box-shadow:inset 5px 5px 11px var(--neu-dark),inset -5px -5px 11px var(--neu-light);
}

/* —— 背景设置/可视化按钮：凸起小圆 —— */
#playerExpandModal .expand-bg-setup{
  border:none;background:radial-gradient(circle at 32% 28%,#31343a 0%,var(--neu-bg) 78%);color:rgba(255,255,255,0.68);
  box-shadow:4px 4px 9px var(--neu-dark),-4px -4px 9px var(--neu-light);
  transition:box-shadow .18s ease,color .18s ease;
}
#playerExpandModal .expand-bg-setup:active{
  box-shadow:inset 3px 3px 7px var(--neu-dark),inset -3px -3px 7px var(--neu-light);
}
#playerExpandModal .expand-viz-toggle.active{
  background:var(--neu-bg) !important;color:var(--neu-accent) !important;
  box-shadow:4px 4px 9px var(--neu-dark),-4px -4px 9px var(--neu-light),inset 0 0 0 1px var(--neu-accent),0 0 14px var(--neu-glow) !important;
}

/* ============================================================
   音乐列表 · 移动端布局修复
   单行紧凑布局：封面 + 歌名/歌手(截断) + 图标按钮
   ============================================================ */
@media (max-width:768px){
  /* 列表项：单行不换行，紧凑排列 */
  .music-item{flex-wrap:nowrap !important;align-items:center !important}
  /* 按钮组：不换行，紧凑图标按钮 */
  .music-actions{
      width:auto !important;justify-content:flex-end !important;
      margin-top:0 !important;flex-shrink:0 !important;gap:2px !important
  }
  .music-actions .btn-sm{padding:6px 8px !important;font-size:0 !important}
  .music-actions .btn-sm i{font-size:14px}
  .music-actions .btn-sm .btn-text{display:none}
  /* 歌曲信息：截断显示 */
  .music-info{min-width:0 !important;flex:1 1 0% !important;overflow:hidden}
  .music-info .music-name{
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
      max-width:100%
  }
  .music-info .music-artist{
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
      max-width:100%
  }
}
/* 收藏 / 历史 / 歌单 等同样使用 .music-item 的列表一并生效 */

/* === Mobile Player Fixes === */
/* Disable transitions during drag to prevent lag */
.expand-progress.dragging .expand-progress-bar,
.expand-progress.dragging .expand-progress-handle {
    transition: none !important;
}
/* Smooth progress without jitter on mobile */
@media(max-width:768px){
    .expand-progress-bar{transition:width 0.3s linear !important}
    .expand-progress-handle{transition:left 0.3s linear !important}
    /* Hide viz canvas on mobile to prevent crash from heavy canvas ops */
    #vizCanvas{display:none !important}
    /* Reduce particle load */
    .expand-cover-wrapper{will-change:transform}
}


/* === 工具分类筛选栏 === */
.tool-category-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:8px 0;}
.tool-cat-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--neu-dark,rgba(0,0,0,0.1));border-radius:9999px;background:var(--neu-surface,#fff);color:var(--neu-text-secondary,#666);font-size:13px;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;}
.tool-cat-btn:hover{border-color:var(--neu-accent,#06b6d4);color:var(--neu-accent,#06b6d4);}
.tool-cat-btn.active{background:var(--neu-accent,#06b6d4);color:#fff;border-color:var(--neu-accent,#06b6d4);box-shadow:0 2px 8px rgba(6,182,212,0.3);}
.tool-cat-btn i{font-size:12px;}

/* === 开发者工具响应式 === */
.json-tool-grid{grid-template-columns:1fr 1fr !important;}
@media(max-width:768px){
    .json-tool-grid{grid-template-columns:1fr !important;}
    .tool-category-bar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
    .tool-cat-btn{flex-shrink:0;}
}

/* === 通用工具类 === */
.hidden{display:none !important;}

/* === 影视搜索结果 === */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:16px;}
.video-card{background:var(--neu-surface,#fff);border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.06);transition:transform 0.2s ease,box-shadow 0.2s ease;display:flex;flex-direction:column;}
.video-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,0.12);}
.video-cover{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--neu-dark,#f0f0f0);}
.video-info{padding:10px 12px;flex:1;display:flex;flex-direction:column;gap:3px;}
.video-user{font-size:12px;color:var(--neu-text-secondary,#999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.video-files{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px;}
.video-file-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;background:rgba(6,182,212,0.1);color:var(--neu-accent,#06b6d4);font-size:12px;text-decoration:none;transition:all 0.2s ease;cursor:pointer;border:1px solid transparent;}
.video-file-btn:hover{background:var(--neu-accent,#06b6d4);color:#fff;}
@media(max-width:768px){
    .video-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
    .video-cover{aspect-ratio:2/3;}
    .video-info{padding:8px;}
}

/* ==================== PC 播放器 DSP 均衡器面板 ==================== */
.pcp-dsp-panel{
    position:absolute;bottom:130px;left:min(420px,calc(100vw - 520px));width:480px;max-height:540px;
    background:var(--mr-glass-bg,rgba(12,12,18,0.92));backdrop-filter:var(--mr-glass-filter,blur(6px));-webkit-backdrop-filter:var(--mr-glass-filter,blur(6px));
    border:1px solid var(--mr-glass-border-soft,rgba(255,255,255,0.08));border-radius:20px;
    padding:20px 24px;z-index:10001;
    box-shadow:var(--mr-glass-shadow,0 20px 60px rgba(0,0,0,0.5));
    transform:translateY(20px) scale(0.96);opacity:0;pointer-events:none;
    transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),opacity 0.25s ease;
}
.pcp-dsp-panel.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto;}
.pcp-dsp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.pcp-dsp-header h3{margin:0;font-size:16px;color:#fff;display:flex;align-items:center;gap:8px;font-weight:600;}
.pcp-dsp-header h3 i{color:#06b6d4;}
.pcp-dsp-actions{display:flex;gap:8px;align-items:center;}
.pcp-dsp-bypass{
    padding:5px 14px;border-radius:9999px;border:1px solid rgba(255,255,255,0.15);
    background:transparent;color:rgba(255,255,255,0.7);font-size:12px;cursor:pointer;
    transition:all 0.2s ease;
}
.pcp-dsp-bypass:hover{border-color:rgba(255,255,255,0.3);color:#fff;}
.pcp-dsp-bypass.active{background:rgba(239,68,68,0.2);border-color:rgba(239,68,68,0.5);color:#f87171;}
.pcp-dsp-close{
    width:28px;height:28px;border-radius:50%;border:none;
    background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;
}
.pcp-dsp-close:hover{background:rgba(255,255,255,0.15);color:#fff;}

.pcp-dsp-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.pcp-eq-preset{
    padding:5px 12px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);
    background:transparent;color:rgba(255,255,255,0.6);font-size:12px;cursor:pointer;
    transition:all 0.2s ease;
}
.pcp-eq-preset:hover{background:rgba(255,255,255,0.06);color:#fff;}
.pcp-eq-preset.active{background:linear-gradient(135deg,#06b6d4,#b8860b);border-color:transparent;color:#fff;font-weight:600;}

.pcp-dsp-bands{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;height:180px;margin-bottom:20px;padding:0 4px;}
.pcp-eq-band{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;height:100%;}
.pcp-eq-value{font-size:11px;color:rgba(255,255,255,0.5);font-variant-numeric:tabular-nums;height:14px;}
.pcp-eq-slider{
    -webkit-appearance:slider-vertical;writing-mode:bt-lr;-webkit-appearance:none;appearance:none;
    width:6px;height:130px;background:linear-gradient(to top,rgba(6,182,212,0.1),rgba(184,134,11,0.15));
    border-radius:3px;outline:none;cursor:pointer;
}
.pcp-eq-slider::-webkit-slider-thumb{
    -webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;
    background:linear-gradient(135deg,#06b6d4,#b8860b);cursor:pointer;
    box-shadow:0 2px 8px rgba(6,182,212,0.4);border:2px solid rgba(255,255,255,0.2);
}
.pcp-eq-slider::-moz-range-thumb{
    width:16px;height:16px;border-radius:50%;
    background:linear-gradient(135deg,#06b6d4,#b8860b);cursor:pointer;
    box-shadow:0 2px 8px rgba(6,182,212,0.4);border:2px solid rgba(255,255,255,0.2);
}
.pcp-eq-freq{font-size:10px;color:rgba(255,255,255,0.4);}

.pcp-dsp-extras{border-top:1px solid rgba(255,255,255,0.06);padding-top:16px;display:flex;flex-direction:column;gap:12px;}
.pcp-dsp-extra-row{display:flex;align-items:center;gap:12px;}
.pcp-dsp-extra-row label{font-size:12px;color:rgba(255,255,255,0.6);width:70px;flex-shrink:0;}
.pcp-dsp-extra-row input[type=range]{
    flex:1;height:4px;-webkit-appearance:none;appearance:none;
    background:rgba(255,255,255,0.1);border-radius:2px;outline:none;
}
.pcp-dsp-extra-row input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;width:14px;height:14px;border-radius:50%;
    background:#06b6d4;cursor:pointer;box-shadow:0 2px 6px rgba(6,182,212,0.3);
}
.pcp-dsp-extra-row input[type=range]::-moz-range-thumb{
    width:14px;height:14px;border-radius:50%;background:#06b6d4;cursor:pointer;border:none;
}
.pcp-dsp-extra-row span{font-size:11px;color:rgba(255,255,255,0.4);width:40px;text-align:right;flex-shrink:0;}

/* ==================== PC 播放器 更多选项面板 ==================== */
.pcp-more-panel{
    position:absolute;bottom:130px;left:min(420px,calc(100vw - 520px));width:400px;max-height:600px;
    background:var(--mr-glass-bg,rgba(12,12,18,0.92));backdrop-filter:var(--mr-glass-filter,blur(6px));-webkit-backdrop-filter:var(--mr-glass-filter,blur(6px));
    border:1px solid var(--mr-glass-border-soft,rgba(255,255,255,0.08));border-radius:20px;
    padding:20px 24px;z-index:10001;
    box-shadow:var(--mr-glass-shadow,0 20px 60px rgba(0,0,0,0.5));
    transform:translateY(20px) scale(0.96);opacity:0;pointer-events:none;
    transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),opacity 0.25s ease;
    overflow-y:auto;
}
.pcp-more-panel.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto;}
.pcp-more-panel::-webkit-scrollbar{width:4px;}
.pcp-more-panel::-webkit-scrollbar-track{background:transparent;}
.pcp-more-panel::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px;}
.pcp-more-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.pcp-more-header h3{margin:0;font-size:16px;color:#fff;display:flex;align-items:center;gap:8px;font-weight:600;}
.pcp-more-header h3 i{color:#b8860b;}
.pcp-more-close{
    width:28px;height:28px;border-radius:50%;border:none;
    background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;
}
.pcp-more-close:hover{background:rgba(255,255,255,0.15);color:#fff;}
.pcp-more-body{display:flex;flex-direction:column;gap:20px;}
.pcp-more-section{display:flex;flex-direction:column;gap:10px;}
.pcp-more-label{font-size:13px;color:rgba(255,255,255,0.8);font-weight:600;display:flex;align-items:center;gap:6px;}
.pcp-more-label i{color:#06b6d4;width:16px;text-align:center;}

.pcp-speed-btns,.pcp-sleep-btns{display:flex;flex-wrap:wrap;gap:6px;}
.pcp-speed-btns button,.pcp-sleep-btns button{
    padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);
    background:transparent;color:rgba(255,255,255,0.6);font-size:12px;cursor:pointer;
    transition:all 0.2s ease;
}
.pcp-speed-btns button:hover,.pcp-sleep-btns button:hover{background:rgba(255,255,255,0.06);color:#fff;}
.pcp-speed-btns button.active,.pcp-sleep-btns button.active{
    background:linear-gradient(135deg,#06b6d4,#b8860b);border-color:transparent;color:#fff;font-weight:600;
}
.pcp-sleep-timer{
    font-size:12px;color:#06b6d4;font-variant-numeric:tabular-nums;
    padding:6px 12px;background:rgba(6,182,212,0.08);border-radius:8px;text-align:center;
}

.pcp-audio-info{display:flex;flex-direction:column;gap:6px;}
.pcp-info-row{
    display:flex;justify-content:space-between;font-size:12px;
    padding:6px 10px;background:rgba(255,255,255,0.03);border-radius:6px;
}
.pcp-info-row span:first-child{color:rgba(255,255,255,0.5);}
.pcp-info-row span:last-child{color:rgba(255,255,255,0.8);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.pcp-shortcuts{display:flex;flex-direction:column;gap:6px;}
.pcp-shortcut-row{
    display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,0.6);
    padding:4px 0;
}
.pcp-shortcut-row kbd{
    display:inline-block;padding:2px 8px;border-radius:4px;
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);
    font-size:11px;font-family:monospace;color:rgba(255,255,255,0.8);min-width:28px;text-align:center;
}
.pcp-shortcut-row span{margin-left:auto;}

@media(max-width:1023px){
    .pcp-dsp-panel,.pcp-more-panel{display:none;}
}

/* ========== 3D 歌单架（右键唤起，参考 Mineradio playlist-shelf） ========== */
.pcp-shelf-overlay{position:absolute;inset:0;z-index:10002;display:flex;align-items:center;justify-content:center;background:rgba(2,4,12,0.75);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity 0.4s ease}
.pcp-shelf-overlay.open{opacity:1;pointer-events:auto}
.pcp-shelf{width:min(900px,90vw);max-height:80vh;background:linear-gradient(135deg,rgba(20,28,48,0.92),rgba(8,12,24,0.95));border:1px solid rgba(0,245,212,0.18);border-radius:24px;box-shadow:0 32px 80px rgba(0,0,0,0.5),0 0 60px rgba(0,245,212,0.08),inset 0 1px 0 rgba(255,255,255,0.1);overflow:hidden;transform:scale(0.92) translateY(20px);transition:transform 0.5s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column}
.pcp-shelf-overlay.open .pcp-shelf{transform:scale(1) translateY(0)}
.pcp-shelf-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 12px;border-bottom:1px solid rgba(255,255,255,0.06)}
.pcp-shelf-header h3{font-size:18px;font-weight:700;color:#fff;display:flex;align-items:center;gap:10px}
.pcp-shelf-header h3 i{color:var(--mr-accent)}
.pcp-shelf-close{width:36px;height:36px;border-radius:10px;border:none;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);font-size:16px;cursor:pointer;transition:all 0.2s ease}
.pcp-shelf-close:hover{background:rgba(255,80,80,0.15);color:#ff6464}
.pcp-shelf-hint{text-align:center;font-size:11px;color:rgba(255,255,255,0.3);padding:6px 0 2px}
.pcp-shelf-stage{flex:1;overflow-y:auto;padding:24px 28px;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-content:flex-start;perspective:1000px}
.pcp-shelf-empty{color:rgba(255,255,255,0.2);text-align:center;padding:60px 20px;font-size:14px}
.pcp-shelf-card{width:160px;height:200px;border-radius:16px;cursor:pointer;position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(40,50,80,0.8),rgba(15,20,40,0.9));border:1px solid rgba(255,255,255,0.08);transition:transform 0.4s cubic-bezier(.22,1,.36,1),box-shadow 0.4s ease;transform-style:preserve-3d;animation:pcpShelfFloat 4s ease-in-out infinite}
.pcp-shelf-card:nth-child(odd){animation-delay:-1.5s}
.pcp-shelf-card:nth-child(3n){animation-delay:-3s}
.pcp-shelf-card:hover{transform:translateY(-12px) rotateY(-8deg) scale(1.05);box-shadow:0 20px 50px rgba(0,0,0,0.4),0 0 30px rgba(0,245,212,0.15);border-color:rgba(0,245,212,0.3)}
.pcp-shelf-card img{width:100%;height:130px;object-fit:cover;border-radius:12px 12px 0 0}
.pcp-shelf-card-info{padding:10px 12px}
.pcp-shelf-card-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcp-shelf-card-meta{font-size:11px;color:rgba(255,255,255,0.4);margin-top:2px}
@keyframes pcpShelfFloat{0%,100%{transform:translateY(0) rotateX(2deg)}50%{transform:translateY(-6px) rotateX(-1deg)}}
@media(max-width:1023px){.pcp-shelf-overlay{display:none}}

/* ==================== Mineradio WebGL Particle Enhancements ==================== */

/* ========== 右侧浮动按钮组（上传背景 + 好壁纸网） ========== */
.pcp-float-btns{
    position:absolute;right:clamp(20px,4vw,40px);top:50%;transform:translateY(-50%);z-index:6;
    display:flex;flex-direction:column;gap:10px;
    transition:opacity 0.6s cubic-bezier(.22,1,.36,1),transform 0.6s cubic-bezier(.22,1,.36,1);
}
.pc-player.idle .pcp-float-btns{opacity:0;transform:translateY(-50%) translateX(20px);pointer-events:none}
.pcp-float-btn{
    display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:14px;
    border:1px solid rgba(255,255,255,0.08);
    background:rgba(12,12,18,0.72);backdrop-filter:blur(6px) saturate(1.4);-webkit-backdrop-filter:blur(6px) saturate(1.4);
    color:rgba(255,255,255,0.7);cursor:pointer;font-size:12px;font-weight:500;
    transition:all 0.25s ease;white-space:nowrap;
    box-shadow:0 8px 32px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.06);
}
.pcp-float-btn i{font-size:14px;color:#00F5D4;opacity:0.8;transition:opacity 0.2s}
.pcp-float-btn:hover{
    background:rgba(0,245,212,0.08);color:#fff;
    border-color:rgba(0,245,212,0.25);
    box-shadow:0 12px 40px rgba(0,0,0,0.4),0 0 20px rgba(0,245,212,0.08),inset 0 1px 0 rgba(255,255,255,0.1);
    transform:translateX(-4px);
}
.pcp-float-btn:hover i{opacity:1}
.pcp-float-btn:active{transform:translateX(-2px) scale(0.97)}
/* 更窄屏幕时浮动按钮隐藏文字只显示图标 */
@media(max-width:1280px){
    .pcp-float-btn span{display:none}
    .pcp-float-btn{padding:12px;border-radius:12px}
    .pcp-float-btn:hover{transform:scale(1.05);translate:none}
}
#pcpWebGL{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:auto;}
#pcpWebGL canvas{display:block;width:100%!important;height:100%!important;}
#pcpCustomBg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;pointer-events:none;opacity:0;transition:opacity 0.8s ease,filter 0.8s ease;filter:brightness(0.82) contrast(1.08) saturate(0.92);}
#pcpCustomBg.visible{opacity:1;}
#pcpCustomBg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,8,20,0.45) 0%,rgba(3,8,20,0.12) 25%,rgba(3,8,20,0.08) 50%,rgba(3,8,20,0.25) 75%,rgba(3,8,20,0.65) 100%),radial-gradient(ellipse 90% 70% at 50% 40%,transparent 30%,rgba(3,8,20,0.35) 100%);pointer-events:none;}
/* 自定义背景图模式下：隐藏根容器的径向渐变，让照片成为主视觉 */
.pc-player.has-custom-bg{background:#030610 !important;background-image:none !important;}
.pc-player.has-custom-bg .pcp-topbar,
.pc-player.has-custom-bg .pcp-dock,
.pc-player.has-custom-bg .pcp-right{backdrop-filter:blur(4px) saturate(2.0) brightness(1.12);-webkit-backdrop-filter:blur(4px) saturate(2.0) brightness(1.12);}
/* WebGL 背景模式下粒子降低透明度 */
.pc-player.has-webgl .pcp-galaxy{display:none;}
.pc-player.has-webgl .pcp-body{z-index:2;}
.pc-player.has-webgl .pcp-topbar{z-index:10;}
.pc-player.has-webgl .pcp-dock{z-index:10;}
.pc-player.has-webgl .pcp-right{z-index:10;}
.pc-player.has-webgl .pcp-floating-play{z-index:10;}
.pc-player.has-webgl .pcp-dsp-panel{z-index:10;}
/* 背景上传按钮（现为浮动按钮组中的按钮，无需特殊定位） */
#pcpBgUploadBtn{position:relative;overflow:hidden}
#pcpBgUploadBtn input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
/* 浮动按钮组中的好壁纸网按钮 */
#pcpWallpaperBtn{cursor:pointer}

/* ========== 移动端性能优化 ========== */
@media(max-width:768px){
    /* 展开播放器：减少box-shadow开销，提升合成层 */
    #playerExpandModal{
        will-change:transform;contain:layout style paint;
    }
    #playerExpandModal .expand-close{
        box-shadow:2px 2px 6px var(--neu-dark),-2px -2px 6px var(--neu-light);
    }
    #playerExpandModal .expand-cover{
        box-shadow:4px 4px 12px var(--neu-dark),-4px -4px 12px var(--neu-light),0 0 18px var(--neu-glow);
    }
    #playerExpandModal .expand-cover-wrapper::before{
        box-shadow:inset 4px 4px 10px var(--neu-dark),inset -4px -4px 10px var(--neu-light) !important;
    }
    #playerExpandModal .expand-cover-wrapper::after{
        box-shadow:2px 2px 4px var(--neu-dark),-2px -2px 4px var(--neu-light),inset 0 0 0 2px var(--neu-bg);
    }
    #playerExpandModal .expand-progress{
        box-shadow:inset 2px 2px 4px var(--neu-dark),inset -2px -2px 4px var(--neu-light);
    }
    #playerExpandModal .expand-progress-handle{
        box-shadow:1px 1px 3px var(--neu-dark),-1px -1px 3px var(--neu-light),0 0 6px var(--neu-glow);
    }
    #playerExpandModal .expand-btn{
        box-shadow:3px 3px 7px var(--neu-dark),-3px -3px 7px var(--neu-light);
    }
    #playerExpandModal .expand-btn-play{
        box-shadow:4px 4px 10px var(--neu-dark),-4px -4px 10px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.28);
    }
    #playerExpandModal .expand-btn-play:hover{
        box-shadow:4px 4px 10px var(--neu-dark),-4px -4px 10px var(--neu-light),inset 0 0 0 1px rgba(94,234,212,0.45),0 0 14px var(--neu-glow);
    }
    /* 减少粒子Canvas的绘制负担 */
    #vizCanvas{will-change:transform}
    /* 封面旋转使用transform3d触发GPU加速 */
    .expand-cover-wrapper{will-change:transform;transform:translateZ(0)}
}

/* ===== 桌面歌词悬浮窗 ===== */
#desktopLyric{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:9998;width:min(720px,90vw);padding:14px 22px;border-radius:16px;background:rgba(20,22,30,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 8px 40px rgba(0,0,0,.45);display:none;user-select:none;cursor:move;text-align:center;transition:opacity .25s}
#desktopLyric.active{display:block}
#desktopLyric.locked{pointer-events:none}
#desktopLyric .dl-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;opacity:.7;font-size:12px;color:#cbd5e1}
#desktopLyric.locked .dl-header{opacity:0}
#desktopLyric .dl-actions button{background:none;border:none;color:#fff;cursor:pointer;font-size:13px;margin-left:8px;padding:2px 4px}
#desktopLyric .dl-current{font-size:26px;font-weight:800;line-height:1.4;background:linear-gradient(90deg,#7dd3fc,#ffd770,#f0abfc);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 12px rgba(0,0,0,.4);min-height:1.4em}
#desktopLyric .dl-next{font-size:15px;color:#94a3b8;margin-top:4px;min-height:1.2em}
@keyframes dlPulse{0%{transform:scale(.98);opacity:.85}100%{transform:scale(1);opacity:1}}
#desktopLyric .dl-current.changed{animation:dlPulse .35s ease}
@media(max-width:768px){#desktopLyric .dl-current{font-size:20px}#desktopLyric{bottom:88px}}

/* ========== 歌单导入/导出按钮 ========== */
#playlistExportBtn,#playlistImportBtn{font-size:13px;padding:6px 14px}

/* ========== 分享卡片按钮 ========== */
#shareCardBtn{position:relative}
#shareCardBtn:hover{color:var(--primary,#6366f1)}

/* ========== 听歌识曲按钮 ========== */
#recognizeBtn{padding:8px 12px;display:inline-flex;align-items:center;gap:4px}
#recognizeBtn.recording{color:#ef4444;animation:recPulse 1s ease-in-out infinite}
#recognizeBtn.recording i{animation:recBlink .8s ease infinite}
@keyframes recPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.3)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
@keyframes recBlink{0%,100%{opacity:1}50%{opacity:.4}}

/* ========== 跨设备同步按钮 ========== */
#syncUploadBtn,#syncDownloadBtn{font-size:13px;padding:6px 14px}

/* ========== 桌面歌词锁定态 ========== */
#desktopLyric.locked{pointer-events:none}
#desktopLyric.locked .dl-actions{pointer-events:auto}

/* ========== 天气电台按钮 ========== */
.weather-radio-btn{position:absolute;top:-4px;right:-4px;width:28px;height:28px;border-radius:50%;border:none;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(99,102,241,.4);transition:transform .2s,box-shadow .2s;z-index:10}
.weather-radio-btn:hover{transform:scale(1.15);box-shadow:0 4px 12px rgba(99,102,241,.6)}
.weather-radio-btn:active{transform:scale(.95)}
.weather-radio-btn i{animation:wrSpin 3s linear infinite;animation-play-state:paused}
.weather-radio-btn:hover i{animation-play-state:running}
@keyframes wrSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ========== 歌词双语切换 ========== */
body.hide-translation .lyric-line small,
body.hide-translation .expand-lyric-line small{display:none!important}

/* ========== 歌词搜索切换 ========== */
.lyric-search-toggle.active{background:var(--primary,#6366f1);color:#fff}

/* ========== 播放队列面板 ========== */
.polar-queue-panel{position:fixed;right:20px;bottom:90px;width:360px;max-height:60vh;background:var(--neu-bg,#1e1e2e);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.3);z-index:2000;display:none;flex-direction:column;overflow:hidden}
.polar-queue-panel.active{display:flex}
.pq-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.pq-title{font-weight:600;color:#fff;font-size:15px}
.pq-count{font-size:12px;color:rgba(255,255,255,.5)}
.pq-actions{display:flex;gap:8px}
.pq-actions button{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:14px;padding:4px}
.pq-actions button:hover{color:#fff}
.pq-list{overflow-y:auto;flex:1;padding:8px}
.pq-empty{text-align:center;color:rgba(255,255,255,.4);padding:40px 16px;font-size:14px}
.pq-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;transition:background .2s;cursor:default}
.pq-item:hover{background:rgba(255,255,255,.05)}
.pq-item.playing{background:rgba(99,102,241,.15)}
.pq-item.dragging{opacity:.5}
.pq-item.drag-over{border-top:2px solid var(--primary,#6366f1)}
.pq-idx{width:24px;text-align:center;font-size:13px;color:rgba(255,255,255,.4)}
.pq-info{flex:1;min-width:0}
.pq-name{font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pq-artist{font-size:12px;color:rgba(255,255,255,.4)}
.pq-play-btn,.pq-del-btn{background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;padding:6px;font-size:13px}
.pq-play-btn:hover{color:var(--primary,#6366f1)}
.pq-del-btn:hover{color:#ef4444}

/* ========== 歌词卡片按钮 ========== */
#lyricCardBtn:hover{color:var(--primary,#6366f1)}

/* ========== 弹幕歌词 ========== */
.danmaku-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;display:none}
.danmaku-overlay.active{display:block}
.dm-track{position:relative;width:100%;height:100%;overflow:hidden}
.dm-item{position:absolute;white-space:nowrap;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.3);font-weight:600;animation:dmScroll linear forwards}
@keyframes dmScroll{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}
.dm-controls{position:absolute;top:16px;right:16px;display:flex;gap:8px;pointer-events:auto}
.dm-controls button{width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.5);color:#fff;cursor:pointer;font-size:14px;backdrop-filter:blur(4px)}
.dm-controls button:hover{background:rgba(0,0,0,.7)}

/* ========== 听歌统计面板 ========== */
.polar-stats-panel{position:fixed;right:20px;bottom:90px;width:380px;max-height:70vh;background:var(--neu-bg,#1e1e2e);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.3);z-index:2000;display:none;flex-direction:column;overflow:hidden}
.polar-stats-panel.active{display:flex}
.ps-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.ps-title{font-weight:600;color:#fff;font-size:15px}
.ps-close-btn{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:16px}
.ps-body{overflow-y:auto;flex:1;padding:16px}
.ps-stat-row{display:flex;gap:8px;margin-bottom:16px}
.ps-stat-box{flex:1;text-align:center;padding:12px 8px;background:rgba(255,255,255,.05);border-radius:12px}
.ps-num{font-size:20px;font-weight:700;color:var(--primary,#6366f1)}
.ps-label{font-size:11px;color:rgba(255,255,255,.5);margin-top:4px}
.ps-section{margin-bottom:16px}
.ps-section h4{font-size:14px;color:#fff;margin-bottom:10px}
.ps-empty{text-align:center;color:rgba(255,255,255,.3);padding:20px;font-size:13px}
.ps-rank{display:flex;align-items:center;gap:10px;padding:8px 0}
.ps-rank-num{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ps-rank-info{flex:1;min-width:0}
.ps-rank-name{font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-rank-artist{font-size:11px;color:rgba(255,255,255,.4)}
.ps-reset-btn{margin-top:8px}

/* ========== 歌单分享码弹窗 ========== */
.polar-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:3000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.polar-modal-box{width:90%;max-width:500px;background:var(--neu-bg,#1e1e2e);border-radius:16px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.4)}
.scm-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}
.scm-header h3{font-size:16px;color:#fff;margin:0}
.scm-close{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:18px}
.scm-body{padding:20px}
.scm-body p{font-size:13px;color:rgba(255,255,255,.6);margin-bottom:12px}
.scm-code,.scm-input{width:100%;min-height:80px;padding:12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2);color:#fff;font-size:13px;font-family:monospace;resize:vertical;margin-bottom:12px}
.scm-copy,.scm-import{width:100%}

/* ========== 音乐闹钟面板 ========== */
.polar-alarm-panel{position:fixed;right:20px;bottom:90px;width:360px;max-height:70vh;background:var(--neu-bg,#1e1e2e);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.3);z-index:2000;display:none;flex-direction:column;overflow:hidden}
.polar-alarm-panel.active{display:flex}
.pa-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.pa-title{font-weight:600;color:#fff;font-size:15px}
.pa-close-btn{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:16px}
.pa-list{overflow-y:auto;flex:1;padding:8px}
.pa-empty{text-align:center;color:rgba(255,255,255,.4);padding:30px 16px;font-size:14px}
.pa-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:8px;background:rgba(255,255,255,.03);margin-bottom:4px}
.pa-item.disabled{opacity:.5}
.pa-time{font-size:20px;font-weight:700;color:#fff}
.pa-info{flex:1;min-width:0}
.pa-label{font-size:13px;color:#fff}
.pa-song{font-size:11px;color:rgba(255,255,255,.4)}
.pa-toggle{width:40px;height:22px;border-radius:11px;border:none;background:rgba(255,255,255,.15);cursor:pointer;position:relative;transition:background .2s}
.pa-toggle.on{background:var(--primary,#6366f1)}
.pa-toggle::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.pa-toggle.on::after{transform:translateX(18px)}
.pa-del{background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;padding:4px}
.pa-del:hover{color:#ef4444}
.pa-add{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:8px;flex-wrap:wrap}
.pa-time-input,.pa-label-input{padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2);color:#fff;font-size:13px}
.pa-label-input{flex:1}
.pa-hint{padding:8px 16px 12px;font-size:11px;color:rgba(255,255,255,.3)}

/* ========== 音质对比面板 ========== */
.polar-qc-panel{position:fixed;right:20px;bottom:90px;width:340px;background:var(--neu-bg,#1e1e2e);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.3);z-index:2000;display:none;flex-direction:column;overflow:hidden}
.polar-qc-panel.active{display:flex}
.qc-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.qc-title{font-weight:600;color:#fff;font-size:15px}
.qc-close{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:16px}
.qc-body{padding:16px}
.qc-current{text-align:center;font-size:14px;color:#fff;margin-bottom:12px}
.qc-buttons{display:flex;gap:8px;margin-bottom:16px}
.qc-side{flex:1;padding:12px;border-radius:10px;border:2px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#fff;font-size:14px;cursor:pointer;transition:all .2s}
.qc-side.active{border-color:var(--primary,#6366f1);background:rgba(99,102,241,.15)}
.qc-select-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.qc-select-row label{font-size:13px;color:rgba(255,255,255,.6);min-width:60px}
.qc-select-row select{flex:1;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2);color:#fff}
.qc-hint{font-size:11px;color:rgba(255,255,255,.3);margin-top:8px}

/* ========== 设置卡片 ========== */
.setting-card{cursor:pointer}

/* ========== 音乐工具界面美化 ========== */
/* 标签页升级 - 横向滚动 + 胶囊样式 */
#music-tool .tabs{
    display:flex;gap:6px;padding:5px;border-radius:var(--radius-full);
    background:rgba(13,13,21,0.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
    border:1px solid rgba(255,255,255,0.06);overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;
    margin-bottom:4px
}
#music-tool .tabs::-webkit-scrollbar{display:none}
#music-tool .tab-item{
    padding:8px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:500;
    color:rgba(255,255,255,0.5);cursor:pointer;transition:all 0.25s cubic-bezier(0.25,0.8,0.25,1);
    white-space:nowrap;flex-shrink:0;border:1px solid transparent
}
#music-tool .tab-item:hover{color:rgba(255,255,255,0.85);background:rgba(255,255,255,0.06)}
#music-tool .tab-item.active{
    background:linear-gradient(135deg,#d4a030 0%,#b8860b 100%);color:#fff;
    box-shadow:0 4px 16px -2px rgba(184,134,11,0.45),inset 0 1px 0 rgba(255,255,255,0.15);
    border-color:rgba(255,255,255,0.1)
}

/* 云端同步按钮栏 */
.cloud-sync-bar{
    display:flex;gap:8px;margin:8px 0 12px;flex-wrap:wrap;align-items:center
}
.cloud-sync-bar .btn{
    flex:1;min-width:130px;justify-content:center;
    border-radius:var(--radius-full);padding:8px 14px;font-size:12.5px;
    background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
    color:rgba(255,255,255,0.6);transition:all 0.25s cubic-bezier(0.25,0.8,0.25,1)
}
.cloud-sync-bar .btn:hover{
    background:rgba(212,160,48,0.12);border-color:rgba(212,160,48,0.3);
    color:#f5c04a;transform:translateY(-1px)
}
.cloud-sync-bar .btn i{margin-right:5px;font-size:13px}

/* 搜索面板 - 分层布局 */
.music-search-panel{
    background:rgba(18,18,28,0.4);backdrop-filter:blur(4px) saturate(140%);
    -webkit-backdrop-filter:blur(4px) saturate(140%);
    border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);
    padding:14px;box-shadow:0 8px 28px rgba(0,0,0,0.25);margin-bottom:12px;
    display:flex;flex-direction:column;gap:10px
}
.music-search-main{
    display:flex;align-items:center;gap:0;
    background:rgba(13,13,21,0.35);border:1px solid rgba(255,255,255,0.08);
    border-radius:var(--radius-md);transition:border-color 0.25s,box-shadow 0.25s;
    overflow:hidden
}
.music-search-main:focus-within{
    border-color:rgba(212,160,48,0.4);box-shadow:0 0 0 3px rgba(212,160,48,0.1)
}
.music-search-icon{
    font-size:15px;color:rgba(255,255,255,0.3);flex-shrink:0;transition:color 0.25s;
    padding:0 12px
}
.music-search-main:focus-within .music-search-icon{color:#f5c04a}
.music-search-main .search-input{
    flex:1;min-width:0;border:none;background:transparent;backdrop-filter:none;
    -webkit-backdrop-filter:none;box-shadow:none;padding:13px 0;font-size:15px
}
.music-search-main .search-input:focus{border:none;box-shadow:none;transform:none}
.music-search-btn{
    flex-shrink:0;border:none;border-radius:0 var(--radius-md) var(--radius-md) 0;
    padding:13px 20px;font-size:14px;font-weight:600;height:100%;white-space:nowrap;
    background:linear-gradient(135deg,#d4a030 0%,#b8860b 100%);color:#fff;
    transition:filter 0.2s
}
.music-search-btn:hover{filter:brightness(1.12)}
.music-search-btn:active{filter:brightness(0.95)}
.music-search-controls{
    display:flex;gap:10px;align-items:center;flex-wrap:wrap
}
.music-search-controls .search-select{
    flex:1;min-width:120px;border-radius:var(--radius-md)
}
.music-search-controls .btn{
    flex-shrink:0;border-radius:var(--radius-md);padding:12px 24px;font-size:14px;font-weight:600
}

/* 状态提示文字 */
#music-tool .status{
    font-size:12.5px;color:rgba(255,255,255,0.4);padding:4px 4px 12px;
    display:flex;align-items:center;gap:6px
}
#music-tool .status::before{
    content:'';display:inline-block;width:6px;height:6px;border-radius:50%;
    background:rgba(212,160,48,0.5);flex-shrink:0
}

/* 歌单解析提示 */
.import-tips{
    font-size:12px;color:rgba(255,255,255,0.35);margin-bottom:14px;line-height:1.8;
    padding:12px 14px;border-radius:var(--radius-md);
    background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.04);
    border-left:3px solid rgba(212,160,48,0.3)
}
.import-tips b{color:rgba(255,255,255,0.55);font-weight:600}

/* 收藏/历史/歌单标签内的搜索栏也统一使用面板样式 */
#favorites-tab .search-bar,
#history-tab .search-bar,
#playlists-tab .search-bar{
    background:rgba(18,18,28,0.4);backdrop-filter:blur(4px) saturate(140%);
    -webkit-backdrop-filter:blur(4px) saturate(140%);
    border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);
    padding:14px;box-shadow:0 8px 28px rgba(0,0,0,0.25);margin-bottom:12px;
    gap:10px;align-items:center
}
#favorites-tab .search-bar .search-input,
#favorites-tab .search-bar .search-select{flex:1;min-width:100px}
#favorites-tab .search-bar .btn{flex-shrink:0}

/* 返回按钮美化 */
#music-tool .back-to-hub{margin-bottom:12px}
#music-tool .back-to-hub .btn{
    border-radius:var(--radius-full);padding:7px 16px;font-size:13px;
    background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
    color:rgba(255,255,255,0.6);transition:all 0.25s
}
#music-tool .back-to-hub .btn:hover{
    background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.9);transform:translateX(-2px)
}

/* ===== "更多"按钮+弹出菜单（桌面端隐藏更多按钮，移动端显示） ===== */
.music-more-btn{
    display:none;flex-shrink:0;padding:0 12px;border-radius:0;
    background:rgba(255,255,255,0.06);border:none;color:rgba(255,255,255,0.5);
    cursor:pointer;align-self:stretch;align-items:center;justify-content:center
}
.music-more-btn.active{background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.9)}
.music-more-btn:hover{color:rgba(255,255,255,0.8)}
.music-more-menu{
    display:none;position:absolute;z-index:100;
    flex-direction:column;gap:2px;
    background:rgba(20,28,48,0.96);
    backdrop-filter:blur(5px) saturate(1.4);
    -webkit-backdrop-filter:blur(5px) saturate(1.4);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:10px;padding:4px;min-width:130px;
    box-shadow:0 8px 30px rgba(0,0,0,0.4)
}
.music-more-menu.open{display:flex !important}
.more-menu-item{
    display:flex;align-items:center;gap:8px;
    padding:8px 12px;border-radius:6px;
    color:rgba(255,255,255,0.7);font-size:13px;cursor:pointer;
    transition:background 0.15s,color 0.15s;white-space:nowrap
}
.more-menu-item:hover{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.95)}
.more-menu-item i{width:16px;text-align:center;font-size:13px;opacity:0.7}
.more-menu-item:hover i{opacity:1}

/* ===== 播放器展开面板"更多"按钮+弹出菜单 ===== */
.player-more-btn{
    display:none;cursor:pointer;position:relative
}
.player-more-btn.active{
    background:rgba(255,255,255,0.15) !important
}
.player-more-menu{
    display:none;position:absolute;bottom:calc(100% + 8px);right:0;z-index:200;
    flex-direction:column;gap:2px;
    background:rgba(20,28,48,0.96);
    backdrop-filter:blur(5px) saturate(1.4);
    -webkit-backdrop-filter:blur(5px) saturate(1.4);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:10px;padding:4px;min-width:130px;
    box-shadow:0 8px 30px rgba(0,0,0,0.4)
}
.player-more-menu.open{display:flex !important}
.expand-control-btns{position:relative}

/* ===== 移动端音乐工具：干净利落重构 ===== */
@media(max-width:768px){
    /* --- 1. 合并返回按钮+标题为一行 --- */
    #music-tool .back-to-hub{margin:0 0 8px !important;display:flex;align-items:center;gap:8px}
    #music-tool .back-to-hub .btn{
        padding:6px 12px;font-size:12px;border-radius:8px;
        background:transparent;border:none;color:rgba(255,255,255,0.5)
    }
    #music-tool .tool-header{margin:0 !important;display:none}
    #music-tool .tool-header h2{font-size:16px}
    /* 用伪元素显示标题 */
    #music-tool .back-to-hub::after{
        content:'音乐工具';font-size:16px;font-weight:600;color:rgba(255,255,255,0.85)
    }

    /* --- 2. 隐藏云端同步(移到我的页面) --- */
    #music-tool .cloud-sync-bar{display:none}

    /* --- 3. 标签页：可滚动+紧凑 --- */
    #music-tool .tabs{
        gap:2px;padding:0;margin-bottom:12px;
        overflow-x:auto;-webkit-overflow-scrolling:touch;
        scrollbar-width:none
    }
    #music-tool .tabs::-webkit-scrollbar{display:none}
    #music-tool .tab-item{
        padding:7px 12px;font-size:12.5px;border-radius:8px;
        white-space:nowrap;flex-shrink:0
    }
    #music-tool .tab-item.active{font-weight:600}
    /* 缩短"歌单/专辑解析"为"解析" */
    #music-tool .tab-item[data-tab="import"]{font-size:0;overflow:hidden;max-width:42px}
    #music-tool .tab-item[data-tab="import"]::before{content:'解析';font-size:12.5px}
    #music-tool .tab-item[data-tab="import"].active::before{font-weight:600}

    /* --- 4. 搜索面板：极简 --- */
    #music-tool .music-search-panel{
        padding:8px;border-radius:12px;gap:8px;
        background:rgba(15,25,45,0.4);
        border:1px solid rgba(255,255,255,0.05)
    }
    /* 搜索行：输入框+按钮一体化 */
    #music-tool .music-search-main{
        flex-direction:row;flex-wrap:nowrap;gap:0;align-items:stretch;
        border-radius:10px;overflow:hidden;
        background:rgba(0,0,0,0.25);
        border:1px solid rgba(255,255,255,0.06)
    }
    /* 去掉装饰图标 */
    #music-tool .music-search-icon{display:none}
    /* 移动端显示"更多"按钮，隐藏原始的歌词搜索/听歌识曲按钮(已收入弹出菜单) */
    #music-tool .music-more-btn{display:flex}
    #music-tool #lyricSearchToggle,
    #music-tool #recognizeBtn{display:none !important}
    /* 弹出菜单定位在更多按钮下方 */
    #music-tool .music-more-menu{top:auto;right:8px;margin-top:-4px}
    /* 输入框 */
    #music-tool .music-search-main .search-input{
        flex:1 1 0%;width:0;min-width:0;font-size:14px;
        background:transparent;border:none;box-shadow:none;padding:10px 12px
    }
    /* 搜索按钮 */
    #music-tool .music-search-btn{
        flex:0 0 auto;width:auto;min-width:0;padding:0 18px;font-size:13px;
        white-space:nowrap;border-radius:0;border:none;
        background:linear-gradient(135deg,#d4a030,#b8860b);box-shadow:none
    }
    /* 音源选择器 */
    #music-tool .music-search-controls .search-select{
        flex:1 1 100%;width:100%;min-width:0;font-size:13px;
        border-radius:8px;background:rgba(0,0,0,0.25);
        border:1px solid rgba(255,255,255,0.06);padding:8px 10px
    }

    /* --- 5. 隐藏限流提示(移动端不需要常驻) --- */
    #music-tool #searchStatus{display:none}
    #music-tool #searchStatus:empty{display:none}

    /* --- 6. 收藏/历史/歌单搜索栏精简 --- */
    #favorites-tab .search-bar,
    #history-tab .search-bar,
    #playlists-tab .search-bar{
        padding:8px;border-radius:12px;gap:6px;
        background:rgba(15,25,45,0.4);border:1px solid rgba(255,255,255,0.05);
        flex-direction:row;flex-wrap:wrap
    }
    #favorites-tab .search-bar .search-input{flex:1 1 100%;min-width:0;margin-bottom:4px}
    #favorites-tab .search-bar .search-select{flex:1;min-width:80px;font-size:12px}
    #favorites-tab .search-bar .btn,
    #history-tab .search-bar .btn,
    #playlists-tab .search-bar .btn{
        width:auto;flex-shrink:0;border-radius:8px;font-size:12px;padding:7px 10px
    }

    /* --- 7. 歌单解析 --- */
    #import-tab .music-search-controls{flex-direction:row;gap:6px}
    #import-tab .music-search-controls .search-select{flex:1;min-width:0}
    .import-tips{font-size:11px;padding:8px 10px;border-radius:8px;line-height:1.6}

    /* --- 8. 播放器展开面板：更多按钮收纳低频功能 --- */
    /* 显示更多按钮 */
    .player-more-btn{display:inline-flex !important}
    /* 隐藏原始的分享卡片/弹幕歌词/收藏/下载按钮(已收入弹出菜单) */
    #shareCardBtn,
    #danmakuBtn,
    #expandFavBtn,
    #expandDownloadBtn{display:none !important}
    /* 隐藏顶部的自定义背景/粒子可视化按钮(已收入弹出菜单) */
    #openBgSetupBtn,
    #expandVizBtn{display:none !important}
    /* 控制按钮组间距更紧凑 */
    .expand-control-btns{gap:6px;flex-wrap:nowrap}
    .expand-btn{padding:8px;font-size:14px}
    .expand-btn-play{padding:12px;font-size:18px}
    /* 菜单分隔线 */
    .more-menu-divider{
        height:1px;margin:4px 8px;
        background:rgba(255,255,255,0.08)
    }
    /* 弹出菜单最大高度+滚动 */
    .player-more-menu{max-height:280px;overflow-y:auto}

    /* --- 9. 全局底部留白修复（防止底部导航+播放栏遮挡内容） --- */
    /* 直接给音乐工具容器加底部留白 */
    #music-tool{
        padding-bottom:calc(100px + env(safe-area-inset-bottom,0px)) !important
    }
    /* 播放栏可见时：底部导航(72px)+播放栏(84px+60px)=216px，留 220px */
    body:has(.player-bar:not(.hidden)) #music-tool{
        padding-bottom:calc(220px + env(safe-area-inset-bottom,0px)) !important
    }
    /* 各 tab 内容区也要留白 */
    .tab-content{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
    /* 全局 main-wrap 留白（其他页面） */
    .main-wrap{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px)) !important}
    body:has(.player-bar:not(.hidden)) .main-wrap{
        padding-bottom:calc(220px + env(safe-area-inset-bottom,0px)) !important
    }
    .player-bar:not(.hidden) ~ .main-wrap,
    .player-bar:not(.hidden) ~ .content-wrap{
        padding-bottom:calc(220px + env(safe-area-inset-bottom,0px)) !important
    }

    /* --- 10. 列表容器：去掉 overflow:hidden 避免裁切 --- */
    .music-list{overflow:visible !important;padding-bottom:8px}

    /* --- 11. 歌单解析结果区 --- */
    #importResult{padding:0}
    /* 歌单头部：移动端紧凑布局 */
    .import-playlist-info{
        flex-direction:column !important;gap:10px !important;
        padding:12px !important;margin-bottom:12px !important;
        border-radius:12px !important
    }
    .import-playlist-cover{
        width:70px !important;height:70px !important;
        border-radius:10px !important
    }
    .import-playlist-meta{width:100%;text-align:left}
    .import-playlist-meta h3{
        font-size:15px !important;white-space:nowrap !important;
        overflow:hidden !important;text-overflow:ellipsis !important
    }
    .import-playlist-meta p{
        font-size:11px !important;margin:0 0 8px !important;
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis
    }
    .import-playlist-actions{gap:6px !important;width:100%}
    .import-playlist-actions .btn{
        flex:1;text-align:center;font-size:12px !important;
        padding:7px 8px !important;white-space:nowrap !important
    }
    .import-playlist-actions .btn i{font-size:11px}
    #importResult .music-item{padding:8px 12px}
    #importResult .import-header{
        flex-wrap:wrap;gap:8px;padding:8px 12px;
        font-size:13px
    }
    #importResult .import-header .btn{font-size:12px;padding:6px 12px}

    /* --- 12. 搜索分页器移动端 --- */
    .search-pager{
        flex-wrap:wrap;gap:6px;justify-content:center;
        padding:8px 4px
    }
    .search-pager .pager-btn{
        min-width:36px;height:36px;font-size:12px;padding:0 8px
    }
    .search-pager .pager-info{font-size:12px;flex:1 1 100%;text-align:center}

    /* --- 13. 空状态提示 --- */
    .empty-hint{
        padding:32px 16px !important;text-align:center;font-size:13px;
        color:rgba(255,255,255,0.4)
    }

    /* --- 14. 歌单卡片 --- */
    .playlist-card{
        padding:12px !important;margin-bottom:8px !important;
        border-radius:12px !important
    }
    .playlist-card .playlist-name{font-size:14px;font-weight:600}
    .playlist-card .playlist-info{font-size:11px;margin-top:4px}

    /* --- 15. 展开播放器移动端优化 --- */
    #playerExpandModal .expand-container{
        padding:16px 14px !important
    }
    #playerExpandModal .expand-song-name{
        font-size:18px !important
    }
    #playerExpandModal .expand-artist{
        font-size:13px !important
    }
    #playerExpandModal .expand-cover{
        width:200px !important;height:200px !important
    }
    #playerExpandModal .expand-controls{
        padding:12px 0 !important
    }
    /* 进度条触摸区域增大 */
    #playerExpandModal .expand-progress{
        height:24px !important
    }
    #playerExpandModal .expand-progress-bar{
        height:3px !important
    }
    #playerExpandModal .expand-progress-handle{
        width:14px !important;height:14px !important
    }
    /* 展开面板歌词区 */
    #playerExpandModal .expand-lyrics{
        font-size:14px !important;line-height:1.8 !important
    }
}
@media(max-width:480px){
    #music-tool .music-search-btn{padding:0 14px;font-size:12px}
    #music-tool .tab-item{padding:6px 10px;font-size:12px}
    #music-tool .music-search-panel{padding:6px}
    /* 极窄屏：封面再小一点 */
    .music-item .music-cover{width:40px;height:40px}
    .music-item .music-name{font-size:13px}
    .music-item .music-artist{font-size:10px}
    /* 展开播放器封面再小 */
    #playerExpandModal .expand-cover{
        width:170px !important;height:170px !important
    }
    /* 极窄屏：歌单头部封面更小 */
    .import-playlist-cover{width:60px !important;height:60px !important}
    .import-playlist-meta h3{font-size:14px !important}
    .import-playlist-actions .btn{font-size:11px !important;padding:6px 6px !important}
}
@media(max-width:360px){
    /* 超小屏：进一步压缩 */
    #music-tool .tab-item{padding:5px 8px;font-size:11px}
    #music-tool .tab-item[data-tab="import"]{max-width:36px}
    #music-tool .tab-item[data-tab="import"]::before{font-size:11px}
    .music-item{padding:6px 8px !important}
    .music-item .music-cover{width:36px;height:36px}
    .music-item .music-name{font-size:12px}
    .music-item .music-artist{font-size:9px}
    .music-actions .btn-sm{padding:5px 6px !important}
    .music-actions .btn-sm i{font-size:12px}
    /* 搜索面板更紧凑 */
    #music-tool .music-search-main .search-input{padding:8px 10px;font-size:13px}
    #music-tool .music-search-btn{padding:0 12px;font-size:11px}
    /* 底部导航更紧凑 */
    .bottom-nav{height:50px !important;padding:0 10px !important}
    .bottom-nav .nav-item{min-width:44px;font-size:9px}
    /* 播放栏更紧凑 */
    .player-bar{height:54px !important}
    .player-bar .player-cover{width:38px !important;height:38px !important}
    .player-bar .player-name{font-size:12px !important}
    .player-bar .player-artist{font-size:10px !important}
}

/* ===== 界面模式切换（标准 / 精简） ===== */
.layout-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--radius-full);background:var(--bg-card-glass);border:var(--border-glass);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);flex-shrink:0}
.layout-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-size:12.5px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all .25s ease;white-space:nowrap}
.layout-toggle-btn i{font-size:12px}
.layout-toggle-btn:hover{color:var(--text-primary)}
.layout-toggle-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}
@media(max-width:640px){.layout-toggle-btn span{display:none}.layout-toggle-btn{padding:8px 11px}.layout-toggle-btn i{font-size:14px}}

/* ===== 精简模式（body.compact-mode）：只保留音乐 + 影视 ===== */
/* 隐藏所有非核心 UI：副标题、统计栏、搜索、分类栏、头部信息（一言/天气） */
body.compact-mode .brand-desc,
body.compact-mode .header-info-row,
body.compact-mode .tools-stats-bar,
body.compact-mode .tool-search-wrap,
body.compact-mode .tool-category-bar{display:none !important}
/* 卡片精简：去掉副标题/描述/箭头/光效/装饰圆斑 */
body.compact-mode .tools-hub-card .card-subtitle,
body.compact-mode .tools-hub-card .card-desc,
body.compact-mode .tools-hub-card .card-arrow,
body.compact-mode .tools-hub-card .card-shimmer,
body.compact-mode .tools-hub-card .card-glow-border{display:none !important}
body.compact-mode .tools-hub-card::before,
body.compact-mode .tools-hub-card::after{display:none !important}
/* 顶部大卡：隐藏随机推荐，仅保留音乐，单列居中 */
body.compact-mode .tools-hub-grid-top{grid-template-columns:1fr !important;max-width:520px;margin:10px auto 0 !important}
body.compact-mode .tools-hub-grid-top .card-random{display:none !important}
/* 工具网格：仅保留影视中心，隐藏其余所有卡片，单列居中 */
body.compact-mode .tools-hub-all-grid .tools-hub-card:not(.card-video){display:none !important}
body.compact-mode .tools-hub-all-grid{grid-template-columns:1fr !important;max-width:520px;margin:14px auto 0 !important}
/* 两张核心卡片：恢复精致大卡观感 */
body.compact-mode .tools-hub-card,
body.compact-mode .tools-hub-card.card-music{min-height:130px !important;padding:26px 24px !important;border-radius:var(--radius-lg);animation-duration:.5s}
body.compact-mode .tools-hub-card .card-icon-wrap{width:52px !important;height:52px !important;margin-bottom:12px !important}
body.compact-mode .tools-hub-card .card-icon{font-size:24px !important}
body.compact-mode .tools-hub-card .card-title{font-size:19px !important;margin-bottom:0 !important;letter-spacing:0 !important}
body.compact-mode .tools-hub-card:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 16px 32px -8px rgba(0,0,0,0.3)}
@media(max-width:640px){
    body.compact-mode .tools-hub-card,
    body.compact-mode .tools-hub-card.card-music{min-height:112px !important;padding:22px 20px !important}
    body.compact-mode .tools-hub-card .card-icon-wrap{width:46px !important;height:46px !important}
    body.compact-mode .tools-hub-card .card-title{font-size:17px !important}
}

/* ===================== iPhone 彩蛋：摇一摇切歌 ===================== */
/* 彩蛋开关卡片 */
.shake-egg-card{display:flex !important;align-items:center !important;gap:14px !important;padding:16px !important;position:relative !important;overflow:hidden !important}
.shake-egg-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(212,160,48,0.10),rgba(184,134,11,0.10));opacity:0;transition:opacity .3s ease;pointer-events:none}
.shake-egg-card:hover::before{opacity:1}
.shake-egg-card .setting-icon{flex-shrink:0;position:relative}
.shake-egg-card .setting-icon::after{content:'';position:absolute;inset:-4px;border-radius:50%;background:var(--primary-gradient);opacity:0;filter:blur(3px);animation:eggPulse 2.4s ease-in-out infinite;z-index:-1}
.shake-egg-card .setting-icon i{color:var(--primary-color)}
.shake-egg-body{flex:1;min-width:0;position:relative;z-index:1}
.shake-egg-desc{font-size:12px;color:var(--text-secondary);margin-top:3px;line-height:1.4}
.egg-badge{display:inline-block;font-size:10px;font-weight:600;padding:1px 7px;border-radius:20px;background:var(--primary-gradient);color:#fff;vertical-align:middle;margin-left:4px;letter-spacing:.3px}

/* iPhone 风格拨动开关 */
.egg-switch{position:relative;display:inline-block;width:50px;height:30px;flex-shrink:0;cursor:pointer;z-index:1}
.egg-switch input{opacity:0;width:0;height:0;position:absolute}
.egg-switch-slider{position:absolute;inset:0;background:rgba(255,255,255,0.12);border-radius:30px;transition:background .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(255,255,255,0.08)}
.egg-switch-slider::before{content:'';position:absolute;height:24px;width:24px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;box-shadow:0 2px 6px rgba(0,0,0,0.3)}
.egg-switch input:checked + .egg-switch-slider{background:var(--primary-gradient);border-color:transparent}
.egg-switch input:checked + .egg-switch-slider::before{transform:translateX(20px);box-shadow:0 2px 8px rgba(212,160,48,0.4)}
.egg-switch input:focus-visible + .egg-switch-slider{outline:2px solid var(--primary-color);outline-offset:2px}

@keyframes eggPulse{0%,100%{opacity:0;transform:scale(.9)}50%{opacity:.5;transform:scale(1.15)}}

/* 摇一摇触发：方向闪光仪式感动效 */
.shake-flash{position:fixed;top:0;left:0;right:0;height:4px;z-index:99998;background-size:200% 100%;animation:shakeFlash .52s ease-out}
/* 右摇 → 下一首：蓝紫色光带从左向右扫过 */
.shake-flash-next{background:linear-gradient(90deg,transparent,var(--primary-color),var(--accent2),transparent);box-shadow:0 0 24px 4px rgba(212,160,48,0.5);transform-origin:left}
/* 左摇 → 上一首：紫蓝色光带从右向左扫过 */
.shake-flash-prev{background:linear-gradient(270deg,transparent,var(--accent2),var(--primary-color),transparent);box-shadow:0 0 24px 4px rgba(184,134,11,0.5);transform-origin:right}
@keyframes shakeFlash{0%{opacity:0;transform:scaleX(0)}15%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1)}}

/* 摇一摇方向指示箭头动画 */
.shake-arrow{position:fixed;top:50%;z-index:99998;font-size:48px;color:var(--primary-color);text-shadow:0 0 24px rgba(212,160,48,0.8);animation:shakeArrow .6s ease-out forwards;pointer-events:none}
.shake-arrow-next{right:15%}
.shake-arrow-prev{left:15%}
@keyframes shakeArrow{0%{opacity:0;transform:translateY(-50%) scale(0.3)}30%{opacity:1;transform:translateY(-50%) scale(1.2)}100%{opacity:0;transform:translateY(-50%) scale(1.8) translateX(var(--arrow-dir,40px))}}

/* ===================== 浮动反馈按钮 ===================== */
.feedback-fab{position:fixed;bottom:24px;left:24px;z-index:9000;display:flex;align-items:center;gap:8px;padding:0.65rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,0.12);background:rgba(10,14,39,0.85);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--accent2,#b8860b);cursor:pointer;font-size:13px;font-weight:500;transition:all 0.35s cubic-bezier(0.16,1,0.3,1);opacity:0;transform:translateY(16px);pointer-events:none}
.feedback-fab.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.feedback-fab:hover{background:var(--primary-color,#d4a030);color:#fff;border-color:var(--primary-color,#d4a030);box-shadow:0 0 24px rgba(212,160,48,0.3)}
.feedback-fab i{font-size:14px}
/* 移动端底部有居中浮动导航栏，反馈按钮上移避开导航栏 */
@media(max-width:1023px){.feedback-fab{bottom:calc(80px + env(safe-area-inset-bottom,0)) !important}}
/* 播放栏可见时，反馈按钮上移到播放栏上方，避免遮挡封面与歌曲信息 */
body:has(.player-bar:not(.hidden)) .feedback-fab{bottom:calc(170px + env(safe-area-inset-bottom,0)) !important}
@media(max-width:480px){.feedback-fab span{display:none}.feedback-fab{padding:0.6rem;border-radius:50%;width:40px;height:40px;justify-content:center}}

/* 反馈弹窗 */
.feedback-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;animation:fbFadeIn 0.25s ease-out}
.feedback-modal-overlay.active{display:flex}
.feedback-modal{position:relative;background:var(--bg-color,#0a0e27);border:1px solid rgba(255,255,255,0.08);border-radius:20px;width:90%;max-width:420px;padding:28px;animation:fbSlideUp 0.4s cubic-bezier(0.22,1,0.36,1)}
.feedback-modal h3{font-size:18px;font-weight:700;margin:0 0 4px 0;display:flex;align-items:center;gap:8px}
.feedback-modal h3 i{color:var(--primary-color,#d4a030)}
.feedback-modal .feedback-subtitle{font-size:12px;color:var(--text-secondary,#8b95b5);margin-bottom:20px}
.feedback-types{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.feedback-type-btn{padding:6px 14px;border-radius:999px;border:1px solid rgba(255,255,255,0.1);background:transparent;color:var(--text-secondary,#8b95b5);font-size:12px;cursor:pointer;transition:all 0.3s}
.feedback-type-btn:hover,.feedback-type-btn.active{border-color:var(--primary-color,#d4a030);color:var(--primary-color,#d4a030);background:rgba(212,160,48,0.08)}
.feedback-textarea{width:100%;min-height:100px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);color:var(--text-primary,#e2e8f0);font-size:13px;font-family:inherit;resize:vertical;transition:border-color 0.3s}
.feedback-textarea:focus{outline:none;border-color:var(--primary-color,#d4a030)}
.feedback-textarea::placeholder{color:var(--text-muted,#4a5568)}
.feedback-actions{display:flex;gap:10px;margin-top:16px;justify-content:flex-end}
.feedback-btn{padding:0.5rem 1.2rem;border-radius:10px;font-size:0.8rem;font-weight:600;border:none;cursor:pointer;transition:all 0.3s}
.feedback-btn-cancel{background:transparent;border:1px solid rgba(255,255,255,0.1);color:var(--text-secondary,#8b95b5)}
.feedback-btn-cancel:hover{border-color:rgba(255,255,255,0.2);color:var(--text-primary,#e2e8f0)}
.feedback-btn-submit{background:linear-gradient(135deg,var(--primary-color,#d4a030),var(--accent2,#b8860b));color:#fff}
.feedback-btn-submit:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(212,160,48,0.3)}
.feedback-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(255,255,255,0.06);color:var(--text-secondary,#8b95b5);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all 0.2s}
.feedback-close:hover{background:rgba(239,68,68,0.15);color:#ef4444}
@keyframes fbFadeIn{from{opacity:0}to{opacity:1}}
@keyframes fbSlideUp{from{opacity:0;transform:translateY(24px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ===================== 全局命令面板 ⌘K ===================== */
.cmdk-overlay{position:fixed;inset:0;z-index:10500;background:rgba(0,0,0,0.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding-top:12vh;animation:cmdkFadeIn 0.18s ease-out}
.cmdk-overlay.active{display:flex}
.cmdk-modal{width:92%;max-width:560px;background:rgba(13,17,33,0.95);border:1px solid rgba(255,255,255,0.1);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,0.5);overflow:hidden;animation:cmdkSlide 0.3s cubic-bezier(0.22,1,0.36,1)}
.cmdk-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.06)}
.cmdk-search-icon{color:rgba(255,255,255,0.35);font-size:15px;flex-shrink:0}
.cmdk-input{flex:1;background:transparent;border:none;outline:none;color:#e2e8f0;font-size:16px;font-family:inherit}
.cmdk-input::placeholder{color:rgba(255,255,255,0.3)}
.cmdk-esc-hint{flex-shrink:0;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.4);font-size:11px;font-family:ui-monospace,monospace}
.cmdk-results{max-height:380px;overflow-y:auto;padding:6px}
.cmdk-results::-webkit-scrollbar{width:5px}
.cmdk-results::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:999px}
.cmdk-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;cursor:pointer;transition:background 0.15s}
.cmdk-item.selected{background:rgba(212,160,48,0.12)}
.cmdk-item-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;background:rgba(255,255,255,0.06);color:#d4a030}
.cmdk-item-text{flex:1;min-width:0}
.cmdk-item-name{font-size:14px;font-weight:500;color:#e2e8f0;line-height:1.3}
.cmdk-item-cat{font-size:11px;color:rgba(255,255,255,0.35);margin-top:2px}
.cmdk-item-enter{font-size:11px;color:rgba(255,255,255,0.25);opacity:0;transition:opacity 0.15s}
.cmdk-item.selected .cmdk-item-enter{opacity:1}
.cmdk-empty{text-align:center;padding:32px 16px;color:rgba(255,255,255,0.3);font-size:14px}
.cmdk-empty i{display:block;font-size:28px;margin-bottom:10px;opacity:0.4}
.cmdk-footer{display:flex;gap:18px;padding:10px 20px;border-top:1px solid rgba(255,255,255,0.06);font-size:11px;color:rgba(255,255,255,0.3)}
.cmdk-footer kbd{padding:2px 6px;border-radius:5px;background:rgba(255,255,255,0.08);font-family:ui-monospace,monospace;font-size:10px;margin-right:3px}
.cmdk-hint-badge{position:fixed;bottom:24px;right:24px;z-index:8900;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(13,17,33,0.85);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.5);font-size:11px;cursor:pointer;transition:all 0.3s;opacity:0;transform:translateY(10px);pointer-events:none}
.cmdk-hint-badge.show{opacity:1;transform:translateY(0);pointer-events:auto}
.cmdk-hint-badge:hover{border-color:rgba(212,160,48,0.4);color:#d4a030}
.cmdk-hint-badge kbd{padding:2px 6px;border-radius:5px;background:rgba(255,255,255,0.1);font-family:ui-monospace,monospace}
@keyframes cmdkFadeIn{from{opacity:0}to{opacity:1}}
@keyframes cmdkSlide{from{opacity:0;transform:translateY(-16px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ===================== AI 快捷动作栏 ===================== */
.ai-quick-bar{position:fixed;z-index:9500;display:none;align-items:center;gap:2px;padding:4px;border-radius:14px;background:rgba(13,17,33,0.92);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.1);box-shadow:0 8px 32px rgba(0,0,0,0.4);animation:aiqkPop 0.18s cubic-bezier(0.22,1,0.36,1)}
.ai-quick-bar.show{display:flex}
.ai-quick-btn{display:flex;align-items:center;gap:5px;padding:7px 12px;border:none;background:transparent;color:rgba(255,255,255,0.65);font-size:12px;font-weight:500;cursor:pointer;border-radius:10px;transition:all 0.18s;white-space:nowrap;font-family:inherit}
.ai-quick-btn i{font-size:12px;color:#d4a030}
.ai-quick-btn:hover{background:rgba(212,160,48,0.12);color:#fff}
.ai-quick-btn:active{transform:scale(0.94)}
@keyframes aiqkPop{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}

/* AI 快捷结果弹窗 */
.ai-quick-result-overlay{position:fixed;inset:0;z-index:10600;background:rgba(0,0,0,0.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;animation:cmdkFadeIn 0.18s ease-out}
.ai-quick-result-overlay.active{display:flex}
.ai-quick-result-modal{width:92%;max-width:560px;max-height:70vh;display:flex;flex-direction:column;background:rgba(13,17,33,0.96);border:1px solid rgba(255,255,255,0.1);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,0.5);overflow:hidden;animation:cmdkSlide 0.3s cubic-bezier(0.22,1,0.36,1)}
.ai-quick-result-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,0.06)}
.ai-quick-result-title{font-size:14px;font-weight:600;color:#d4a030;display:flex;align-items:center;gap:8px}
.ai-quick-result-actions{display:flex;gap:6px}
.ai-quick-result-btn{width:32px;height:32px;border-radius:8px;border:none;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all 0.2s}
.ai-quick-result-btn:hover{background:rgba(255,255,255,0.12);color:#fff}
.ai-quick-result-body{flex:1;overflow-y:auto;padding:18px 20px;font-size:14px;line-height:1.75;color:#e2e8f0;white-space:pre-wrap;word-break:break-word}
.ai-quick-result-body::-webkit-scrollbar{width:5px}
.ai-quick-result-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:999px}
.ai-quick-result-body.loading{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.4)}
.ai-quick-result-body.loading::before{content:'';width:20px;height:20px;border:2px solid rgba(255,255,255,0.15);border-top-color:#d4a030;border-radius:50%;animation:aiqkSpin 0.7s linear infinite;margin-right:10px}
@keyframes aiqkSpin{to{transform:rotate(360deg)}}

/* ============================================================
   AI 歌曲解读浮层
   ============================================================ */
.ai-insight-overlay{position:fixed;inset:0;z-index:10800;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:16px;animation:cmdkFadeIn 0.18s ease-out}
.ai-insight-overlay.active{display:flex}
.ai-insight-panel{width:100%;max-width:560px;max-height:84vh;display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(20,26,48,0.97),rgba(12,15,28,0.97));border:1px solid rgba(125,211,252,0.18);border-radius:18px;box-shadow:0 24px 72px rgba(0,0,0,0.55),0 0 0 1px rgba(255,255,255,0.03) inset;overflow:hidden;animation:cmdkSlide 0.3s cubic-bezier(0.22,1,0.36,1)}
.ai-insight-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.06)}
.ai-insight-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:600;color:#7dd3fc}
.ai-insight-title i{filter:drop-shadow(0 0 6px rgba(125,211,252,0.5))}
.ai-insight-close{width:32px;height:32px;border-radius:9px;border:none;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.55);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all 0.2s}
.ai-insight-close:hover{background:rgba(255,255,255,0.14);color:#fff;transform:rotate(90deg)}
.ai-insight-song{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,0.05)}
.ai-insight-cover{width:52px;height:52px;border-radius:11px;object-fit:cover;background:#262a33;flex-shrink:0;box-shadow:0 6px 18px rgba(0,0,0,0.4)}
.ai-insight-meta{min-width:0}
.ai-insight-name{font-size:15px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-insight-artist{font-size:12.5px;color:rgba(255,255,255,0.45);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-insight-body{flex:1;overflow-y:auto;padding:18px 20px;font-size:14px;line-height:1.8;color:#e2e8f0;word-break:break-word;-webkit-overflow-scrolling:touch}
.ai-insight-body::-webkit-scrollbar{width:5px}
.ai-insight-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:999px}
.ai-insight-placeholder{color:rgba(255,255,255,0.35);text-align:center;padding:40px 0;font-size:13.5px}
/* AI 解读加载态：均衡器动画 */
.insight-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;text-align:center}
.insight-eq{display:flex;align-items:flex-end;gap:5px;height:42px;margin-bottom:22px}
.insight-eq span{display:block;width:6px;height:14px;border-radius:3px;background:linear-gradient(180deg,#7dd3fc,#a78bfa);opacity:0.85;animation:insightEq 0.9s ease-in-out infinite}
.insight-eq span:nth-child(1){animation-delay:0s}
.insight-eq span:nth-child(2){animation-delay:0.15s}
.insight-eq span:nth-child(3){animation-delay:0.3s}
.insight-eq span:nth-child(4){animation-delay:0.15s}
.insight-eq span:nth-child(5){animation-delay:0s}
@keyframes insightEq{0%,100%{height:10px}50%{height:40px}}
.insight-loader-text{font-size:15px;font-weight:600;color:#e2e8f0;margin-bottom:6px}
.insight-loader-sub{font-size:12.5px;color:rgba(255,255,255,0.4)}
/* markdown 渲染 */
.ai-insight-body h3{font-size:14.5px;font-weight:600;color:#7dd3fc;margin:16px 0 8px;display:flex;align-items:center;gap:7px}
.ai-insight-body h3:first-child{margin-top:0}
.ai-insight-body h3::before{content:'';width:4px;height:14px;border-radius:3px;background:linear-gradient(180deg,#7dd3fc,#a78bfa)}
.ai-insight-body p{margin:0 0 10px}
.ai-insight-body strong{color:#fde68a;font-weight:600}
.ai-insight-body ul{margin:4px 0 10px;padding-left:18px}
.ai-insight-body li{margin-bottom:5px}
.ai-insight-body .ai-tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11.5px;margin:3px 5px 3px 0;background:rgba(125,211,252,0.12);color:#7dd3fc;border:1px solid rgba(125,211,252,0.2)}
.ai-insight-footer{display:flex;gap:10px;padding:14px 20px;border-top:1px solid rgba(255,255,255,0.06);justify-content:flex-end}
.ai-insight-footer .btn{border-radius:10px}
/* AI 解读按钮高亮态 */
#pcpInsightBtn.active{color:#7dd3fc;background:rgba(125,211,252,0.12)}
#moreInsight.active{background:rgba(125,211,252,0.12);color:#7dd3fc}

/* AI 心动歌单生成中状态 */
#aiPlaylistBtn.generating{pointer-events:none;opacity:0.7}
#aiPlaylistBtn.generating i{animation:aiqkSpin 0.7s linear infinite}
.ai-pl-gen-overlay{position:fixed;inset:0;z-index:10700;background:rgba(0,0,0,0.55);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;animation:cmdkFadeIn 0.18s ease-out}
.ai-pl-gen-overlay.active{display:flex}
.ai-pl-gen-modal{width:88%;max-width:420px;background:rgba(13,17,33,0.97);border:1px solid rgba(167,139,250,0.2);border-radius:18px;padding:26px 24px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,0.5);animation:cmdkSlide 0.3s cubic-bezier(0.22,1,0.36,1)}
.ai-pl-gen-icon{font-size:34px;color:#a78bfa;margin-bottom:14px;animation:aiqkSpin 1.6s linear infinite;display:inline-block}
.ai-pl-gen-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:6px}
.ai-pl-gen-sub{font-size:13px;color:rgba(255,255,255,0.45);margin-bottom:16px;line-height:1.6}
.ai-pl-gen-bar{height:5px;border-radius:999px;background:rgba(255,255,255,0.08);overflow:hidden;margin-bottom:10px}
.ai-pl-gen-bar-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#7dd3fc,#a78bfa);transition:width 0.4s ease}
.ai-pl-gen-pct{font-size:12px;color:rgba(255,255,255,0.5)}

/* ============================================================
 *  手势控制 3D 粒子 UI（hand-gesture-viz.js）
 * ============================================================ */
.hand-gesture-card .setting-icon{background:linear-gradient(135deg,rgba(125,211,252,0.22),rgba(167,139,250,0.22))}
.hand-gesture-card .setting-icon i{color:#7dd3fc}

.hg-panel{
  position:absolute; top:16px; right:16px; z-index:30;
  width:232px; border-radius:14px; overflow:hidden;
  background:rgba(10,14,30,0.78); backdrop-filter:blur(4px);
  border:1px solid rgba(167,139,250,0.22);
  box-shadow:0 16px 48px rgba(0,0,0,0.45);
  animation:hgIn .26s cubic-bezier(.22,1,.36,1);
  font-family:var(--font-sans,"SF Pro Text","PingFang SC",system-ui,sans-serif);
  color:#fff;
}
@keyframes hgIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
.hg-head{
  display:flex; align-items:center; gap:7px; padding:9px 11px;
  background:linear-gradient(90deg,rgba(125,211,252,0.12),rgba(167,139,250,0.12));
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.hg-dot{width:7px;height:7px;border-radius:50%;background:#1DC981;box-shadow:0 0 8px #1DC981;animation:hgPulse 1.6s ease-in-out infinite}
@keyframes hgPulse{0%,100%{opacity:.5}50%{opacity:1}}
.hg-title{font-size:12.5px;font-weight:600;letter-spacing:.3px}
.hg-gesture{
  margin-left:auto; font-size:11px; padding:2px 8px; border-radius:999px;
  background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.7);
  transition:all .2s ease; white-space:nowrap;
}
.hg-gesture.hg-g-burst{background:rgba(232,70,58,0.2);color:#ff9a8a}
.hg-gesture.hg-g-fist{background:rgba(125,211,252,0.18);color:#7dd3fc}
.hg-gesture.hg-g-pinch{background:rgba(239,170,23,0.18);color:#fcd34d}
.hg-gesture.hg-g-peace{background:rgba(29,201,129,0.18);color:#6ee7b7}
.hg-gesture.hg-g-move{background:rgba(167,139,250,0.18);color:#c4b5fd}
.hg-gesture.hg-g-global{background:rgba(255,193,7,0.2);color:#ffe082}
.hg-close{
  margin-left:6px;border:none;background:transparent;color:rgba(255,255,255,0.5);
  cursor:pointer;font-size:12px;padding:2px 4px;border-radius:6px;transition:.2s;
}
.hg-close:hover{color:#fff;background:rgba(255,255,255,0.1)}

.hg-video-wrap{position:relative;width:100%;aspect-ratio:4/3;background:#000;overflow:hidden}
.hg-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.hg-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hg-status{
  position:absolute;left:0;right:0;bottom:0;padding:6px 10px;
  font-size:11px;text-align:center;color:rgba(255,255,255,0.7);
  background:linear-gradient(0deg,rgba(0,0,0,0.7),transparent);
}

.hg-tips{
  padding:8px 11px;font-size:10.5px;line-height:1.7;color:rgba(255,255,255,0.55);
  border-top:1px solid rgba(255,255,255,0.06);
}
.hg-tips b{color:#7dd3fc;font-weight:600}

/* 移动端隐藏设置卡片（仅桌面可用） */
@media (max-width:1023px){ .hand-gesture-card{display:none !important} }

/* ============================================================
 *  听歌画像弹窗（music-profile.js）
 * ============================================================ */
.mp-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.65);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s ease;padding:20px;box-sizing:border-box}
.mp-modal-overlay .mp-modal-wrap{width:100%;max-width:480px;max-height:90vh;overflow:hidden}
.mp-modal-overlay.mp-out{opacity:0}
.mp-card{background:var(--bg-card,rgba(20,22,30,0.98));border-radius:20px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.08);transform:translateY(30px) scale(0.95);opacity:0;transition:all .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;max-height:90vh}
.mp-card.mp-in{transform:translateY(0) scale(1);opacity:1}
.mp-modal-overlay.mp-out .mp-card{transform:translateY(20px) scale(0.97);opacity:0}

.mp-header{position:relative;padding:28px 24px 20px;overflow:hidden}
.mp-header-bg{position:absolute;inset:0;background:linear-gradient(135deg,rgba(75,63,227,0.25),rgba(167,139,250,0.15),rgba(125,211,252,0.1))}
.mp-header-content{position:relative;z-index:1}
.mp-logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#4B3FE3,#7C5CFC);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;margin-bottom:12px;box-shadow:0 8px 24px rgba(75,63,227,0.3)}
.mp-title{margin:0;font-size:20px;font-weight:700;color:#fff;letter-spacing:.5px}
.mp-subtitle{margin:4px 0 0;font-size:12px;color:rgba(255,255,255,0.5)}
.mp-close-btn{position:absolute;top:16px;right:16px;z-index:2;width:32px;height:32px;border-radius:8px;border:none;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.mp-close-btn:hover{background:rgba(255,255,255,0.15);color:#fff}

.mp-body{overflow-y:auto;padding:20px 24px 16px;-webkit-overflow-scrolling:touch}
.mp-body::-webkit-scrollbar{width:4px}
.mp-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:4px}

.mp-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.mp-stat{text-align:center;padding:12px 4px;background:rgba(255,255,255,0.04);border-radius:12px;border:1px solid rgba(255,255,255,0.05)}
.mp-stat-num{font-size:17px;font-weight:700;color:#a78bfa;line-height:1.3}
.mp-stat-label{font-size:11px;color:rgba(255,255,255,0.4);margin-top:2px}

.mp-section{margin-bottom:20px}
.mp-section-title{margin:0 0 10px;font-size:14px;font-weight:600;color:rgba(255,255,255,0.85);display:flex;align-items:center;gap:6px}
.mp-section-title i{color:#7dd3fc;font-size:13px}

.mp-tags-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.mp-tag{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(255,255,255,0.04);border-radius:10px;border:1px solid rgba(255,255,255,0.06)}
.mp-tag-icon{font-size:22px;flex-shrink:0}
.mp-tag-label{font-size:13px;font-weight:600;color:rgba(255,255,255,0.9)}
.mp-tag-desc{font-size:11px;color:rgba(255,255,255,0.4);margin-top:1px}

.mp-rank-list{display:flex;flex-direction:column;gap:6px}
.mp-rank-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(255,255,255,0.03);border-radius:10px;transition:background .2s}
.mp-rank-row:hover{background:rgba(255,255,255,0.06)}
.mp-rank-num{width:20px;height:20px;border-radius:50%;background:rgba(167,139,250,0.15);color:#a78bfa;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mp-rank-info{flex:1;min-width:0}
.mp-rank-name{font-size:13px;color:rgba(255,255,255,0.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-rank-sub{font-size:11px;color:rgba(255,255,255,0.35);margin-top:1px}
.mp-rank-bar{height:4px;background:rgba(255,255,255,0.06);border-radius:2px;margin-top:4px;overflow:hidden}
.mp-rank-fill{height:100%;background:linear-gradient(90deg,#4B3FE3,#7dd3fc);border-radius:2px;transition:width .8s cubic-bezier(.22,1,.36,1)}
.mp-rank-count{font-size:12px;color:rgba(255,255,255,0.4);flex-shrink:0;white-space:nowrap}

.mp-hour-chart{display:flex;align-items:flex-end;gap:1px;height:60px;padding:0 2px}
.mp-hour-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.mp-hour-fill{width:100%;background:linear-gradient(0deg,rgba(75,63,227,0.6),rgba(125,211,252,0.8));border-radius:2px 2px 0 0;min-height:2px;transition:height .6s cubic-bezier(.22,1,.36,1)}
.mp-hour-lbl{font-size:8px;color:rgba(255,255,255,0.2);margin-top:2px}
.mp-hour-hint{text-align:center;font-size:10px;color:rgba(255,255,255,0.3);margin-top:4px}

.mp-heat-grid{display:grid;grid-template-columns:20px repeat(24,1fr);gap:2px;font-size:8px}
.mp-heat-corner{width:20px}
.mp-heat-hlbl{text-align:center;color:rgba(255,255,255,0.2);font-size:8px}
.mp-heat-vlbl{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.3);font-size:10px}
.mp-heat-cell{aspect-ratio:1;border-radius:2px;background:rgba(255,255,255,0.04);transition:transform .2s}
.mp-heat-cell[data-lvl="0"]{background:rgba(255,255,255,0.04)}
.mp-heat-cell[data-lvl="1"]{background:rgba(75,63,227,0.25)}
.mp-heat-cell[data-lvl="2"]{background:rgba(75,63,227,0.45)}
.mp-heat-cell[data-lvl="3"]{background:rgba(125,211,252,0.6)}
.mp-heat-cell[data-lvl="4"]{background:rgba(167,139,250,0.85)}
.mp-heat-cell:hover{transform:scale(1.4);z-index:1}
.mp-heat-legend{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:8px;font-size:10px;color:rgba(255,255,255,0.3)}
.mp-heat-legend-cells{display:flex;gap:2px}
.mp-heat-legend-cells .mp-heat-cell{width:12px;height:12px;aspect-ratio:auto}

.mp-empty{text-align:center;padding:40px 20px}
.mp-empty-icon{font-size:40px;color:rgba(255,255,255,0.15);margin-bottom:12px}
.mp-empty p{margin:0;color:rgba(255,255,255,0.5);font-size:14px}
.mp-empty-hint{font-size:12px !important;color:rgba(255,255,255,0.3) !important;margin-top:4px !important}

.mp-footer{display:flex;gap:8px;padding:16px 0 4px;border-top:1px solid rgba(255,255,255,0.06);margin-top:8px}
.mp-share-btn{flex:1;padding:10px;border:none;border-radius:10px;background:linear-gradient(135deg,#4B3FE3,#7C5CFC);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}
.mp-share-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(75,63,227,0.3)}
.mp-reset-btn{padding:10px 14px;border:1px solid rgba(255,255,255,0.1);border-radius:10px;background:transparent;color:rgba(255,255,255,0.4);font-size:13px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}
.mp-reset-btn:hover{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.2)}

@media(max-width:480px){
  .mp-stats-grid{grid-template-columns:repeat(2,1fr)}
  .mp-tags-grid{grid-template-columns:1fr}
  .mp-heat-hlbl{font-size:7px}
}

/* ============================================================
 *  微交互与触感（micro-interactions.js）
 * ============================================================ */
.fly-heart{
  position:absolute;z-index:99999;pointer-events:none;
  font-size:20px;color:#ff4d6d;
  text-shadow:0 0 10px rgba(255,77,109,0.6);
  -webkit-text-shadow:0 0 10px rgba(255,77,109,0.6);
  will-change:left,top,transform,opacity;
  white-space:nowrap;
}

/* ============================================================
 *  趣味彩蛋（fun-eggs.js）
 * ============================================================ */

/* 节日特效容器 */
.fest-container .fest-snowflake{
  position:absolute;color:rgba(255,255,255,0.8);
  text-shadow:0 0 4px rgba(255,255,255,0.4);will-change:transform;
}
.fest-moon{
  position:fixed;top:40px;right:40px;font-size:80px;
  filter:drop-shadow(0 0 30px rgba(255,220,100,0.5));
  animation:moonGlow 4s ease-in-out infinite;
}
@keyframes moonGlow{0%,100%{filter:drop-shadow(0 0 30px rgba(255,220,100,0.5))}50%{filter:drop-shadow(0 0 50px rgba(255,220,100,0.8))}}
.fest-lantern{
  position:absolute;bottom:-40px;font-size:24px;
  animation:lanternRise linear infinite;will-change:transform,opacity;
}
@keyframes lanternRise{
  0%{transform:translateY(0) translateX(0);opacity:0}
  10%{opacity:0.8}
  90%{opacity:0.6}
  100%{transform:translateY(-100vh) translateX(20px);opacity:0}
}
.fest-bat{position:absolute;will-change:transform}

/* Konami 彩蛋闪光 */
.konami-flash{
  position:fixed;inset:0;z-index:99999;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,0,0,0.15),rgba(255,165,0,0.15),rgba(255,255,0,0.15),rgba(0,255,0,0.15),rgba(0,150,255,0.15),rgba(139,0,255,0.15));
  animation:konamiFlash 0.6s ease-out forwards;
}
@keyframes konamiFlash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}

/* 今日运势卡片 */
.fortune-card{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,rgba(167,139,250,0.12),rgba(125,211,252,0.08));
  border:1px solid rgba(167,139,250,0.15);
  cursor:default;
}
.fortune-icon{font-size:32px;flex-shrink:0}
.fortune-body{flex:1;min-width:0}
.fortune-title{font-size:14px;font-weight:600;color:rgba(255,255,255,0.9)}
.fortune-score{font-size:12px;color:#a78bfa;font-weight:700;margin:2px 0}
.fortune-text{font-size:12px;color:rgba(255,255,255,0.6);line-height:1.5;margin:4px 0}
.fortune-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.fortune-tag{font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5)}

/* 听歌识曲卡片 */
.recognize-card{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,rgba(232,70,58,0.1),rgba(239,170,23,0.08));
  border:1px solid rgba(232,70,58,0.12);
  cursor:pointer;
}
.recognize-icon{width:36px;height:36px;border-radius:10px;background:rgba(232,70,58,0.15);display:flex;align-items:center;justify-content:center;color:#ff8a80;font-size:16px;flex-shrink:0}
.recognize-body{flex:1;min-width:0}
.recognize-title{font-size:14px;font-weight:600;color:rgba(255,255,255,0.9)}
.recognize-desc{font-size:11px;color:rgba(255,255,255,0.4);margin-top:2px}

/* 听歌识曲弹窗 */
.recognize-modal-overlay{
  position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.65);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s;
}
.recognize-modal-overlay.show{opacity:1}
.recognize-modal-card{
  background:rgba(20,22,30,0.98);border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,0.08);max-width:360px;width:90%;
  transform:scale(0.9);transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.recognize-modal-overlay.show .recognize-modal-card{transform:scale(1)}
.recognize-modal-header{
  display:flex;align-items:center;justify-content:space-between;padding:20px 24px;
  background:linear-gradient(135deg,rgba(232,70,58,0.15),rgba(239,170,23,0.08));
}
.recognize-modal-header h3{margin:0;font-size:18px;font-weight:700;color:#fff}
.recognize-close{background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);width:32px;height:32px;border-radius:8px;cursor:pointer}
.recognize-close:hover{background:rgba(255,255,255,0.15);color:#fff}
.recognize-modal-body{padding:32px 24px;text-align:center}
.recognize-mic-circle{
  width:80px;height:80px;border-radius:50%;margin:0 auto 16px;
  background:linear-gradient(135deg,rgba(232,70,58,0.2),rgba(239,170,23,0.15));
  border:2px solid rgba(232,70,58,0.3);
  display:flex;align-items:center;justify-content:center;
  font-size:28px;color:#ff8a80;cursor:pointer;transition:all .3s;
}
.recognize-mic-circle:hover{transform:scale(1.05);border-color:rgba(232,70,58,0.5)}
.recognize-mic-circle.listening{
  animation:micPulse 1s ease-in-out infinite;
  border-color:#e8463a;background:rgba(232,70,58,0.3);color:#fff;
}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(232,70,58,0.3)}50%{box-shadow:0 0 0 16px rgba(232,70,58,0)}}
.recognize-tip{font-size:14px;color:rgba(255,255,255,0.5);margin:0 0 16px}
.recognize-result{min-height:40px}
.recognize-suggest{padding:16px;background:rgba(255,255,255,0.04);border-radius:12px;text-align:left}
.recognize-suggest p{margin:0 0 8px;font-size:13px;color:rgba(255,255,255,0.6)}
.recognize-suggest-hint{font-size:12px !important;color:rgba(255,255,255,0.4) !important}
.recognize-search-btn{
  margin-top:8px;padding:10px 20px;border:none;border-radius:10px;
  background:linear-gradient(135deg,#e8463a,#f0a500);color:#fff;
  font-size:13px;font-weight:600;cursor:pointer;width:100%;
}
.recognize-search-btn:hover{opacity:0.9}

/* ============================================================
 *  歌曲评论弹窗 — 底部划出式（song-comments.js）
 * ============================================================ */
.comment-overlay{
  position:fixed;inset:0;z-index:10000;
  background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);
  opacity:0;transition:opacity .3s;
}
.comment-overlay.show{opacity:1}
.comment-bottom-sheet{
  position:absolute;bottom:0;left:50%;transform:translateX(-50%) translateY(100%);
  width:100%;max-width:560px;max-height:80vh;
  background:rgba(20,22,30,0.98);border-radius:20px 20px 0 0;
  border-top:1px solid rgba(255,255,255,0.08);
  display:flex;flex-direction:column;
  transition:transform .35s cubic-bezier(.22,1,.36,1);
  box-shadow:0 -10px 40px rgba(0,0,0,0.4);
}
.comment-overlay.show .comment-bottom-sheet{transform:translateX(-50%) translateY(0)}

/* 拖拽手柄 */
.comment-sheet-handle{
  width:36px;height:4px;border-radius:2px;
  background:rgba(255,255,255,0.15);margin:10px auto 6px;
  cursor:grab;flex-shrink:0;
}
.comment-sheet-handle:active{cursor:grabbing}

.comment-sheet-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  padding:8px 20px 16px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.comment-header-info{flex:1;min-width:0}
.comment-sheet-header h3{margin:0;font-size:17px;font-weight:700;color:#fff;display:flex;align-items:center;gap:6px}
.comment-sheet-header h3 i{color:#7dd3fc}
.comment-song-name{margin:6px 0 0;font-size:12px;color:rgba(255,255,255,0.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comment-close-btn{
  background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);
  width:32px;height:32px;border-radius:8px;cursor:pointer;flex-shrink:0;transition:all .2s;
}
.comment-close-btn:hover{background:rgba(255,255,255,0.15);color:#fff}

.comment-sheet-body{flex:1;overflow-y:auto;padding:16px 20px;-webkit-overflow-scrolling:touch}
.comment-sheet-body::-webkit-scrollbar{width:4px}
.comment-sheet-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:4px}

.comment-sheet-footer{padding:10px 20px 16px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}

/* 评论项 */
.comment-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.04)}
.comment-item:last-child{border-bottom:none}
.comment-avatar-wrap{flex-shrink:0;width:36px;height:36px}
.comment-avatar{
  width:36px;height:36px;border-radius:50%;object-fit:cover;
  background:rgba(255,255,255,0.06);
}
.comment-avatar-placeholder{
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;color:#a78bfa;
  background:rgba(167,139,250,0.15);
}
.comment-main{flex:1;min-width:0}
.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.comment-name{font-size:13px;font-weight:600;color:rgba(255,255,255,0.8)}
.comment-time{font-size:11px;color:rgba(255,255,255,0.25)}
.comment-content{font-size:13px;color:rgba(255,255,255,0.7);line-height:1.6;word-break:break-word}
.comment-actions{display:flex;gap:16px;margin-top:6px}
.comment-like{font-size:11px;color:rgba(255,255,255,0.3);display:flex;align-items:center;gap:3px}
.comment-reply-toggle{font-size:11px;color:rgba(255,255,255,0.3);display:flex;align-items:center;gap:3px;cursor:pointer;transition:color .2s}
.comment-reply-toggle:hover{color:rgba(255,255,255,0.6)}

/* 楼中楼 */
.comment-floor{
  margin-top:8px;padding:10px 12px;
  background:rgba(255,255,255,0.03);border-radius:8px;
  border-left:2px solid rgba(167,139,250,0.3);
}
.comment-reply-item{font-size:12px;color:rgba(255,255,255,0.55);line-height:1.6;padding:2px 0}
.comment-reply-name{color:#7dd3fc;font-weight:600}
.comment-reply-more{font-size:11px;color:rgba(255,255,255,0.3);margin-top:4px;cursor:pointer}

/* 加载更多 */
.comment-load-more{
  padding:10px 32px;border:1px solid rgba(255,255,255,0.1);border-radius:10px;
  background:transparent;color:rgba(255,255,255,0.5);font-size:13px;cursor:pointer;
  transition:all .2s;display:flex;align-items:center;gap:6px;
}
.comment-load-more:hover{color:rgba(255,255,255,0.8);border-color:rgba(255,255,255,0.2);background:rgba(255,255,255,0.03)}

/* 加载中 */
.comment-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0}
.comment-spinner{
  width:32px;height:32px;border:3px solid rgba(255,255,255,0.08);
  border-top-color:#7dd3fc;border-radius:50%;
  animation:commentSpin 0.8s linear infinite;
}
@keyframes commentSpin{to{transform:rotate(360deg)}}
.comment-loading span{font-size:13px;color:rgba(255,255,255,0.4)}

/* 空状态 */
.comment-empty{text-align:center;padding:40px 20px}
.comment-empty i{font-size:36px;color:rgba(255,255,255,0.12);margin-bottom:12px}
.comment-empty p{margin:0;color:rgba(255,255,255,0.4);font-size:14px}
.comment-empty-hint{font-size:12px !important;color:rgba(255,255,255,0.25) !important;margin-top:4px !important}

/* 音源来源标签 */
.comment-source-tag{
  display:inline-block;font-size:10px;padding:2px 8px;border-radius:999px;
  background:rgba(125,211,252,0.12);color:#7dd3fc;margin-left:8px;font-weight:400;vertical-align:middle;
}

/* 弹幕模式按钮 */
.comment-danmaku-btn{
  padding:10px 20px;border:1px solid rgba(125,211,252,0.2);border-radius:10px;
  background:transparent;color:rgba(125,211,252,0.7);font-size:13px;cursor:pointer;
  transition:all .2s;display:flex;align-items:center;gap:6px;margin-right:8px;
}
.comment-danmaku-btn:hover:not(:disabled){border-color:rgba(125,211,252,0.4);background:rgba(125,211,252,0.06);color:#7dd3fc}
.comment-danmaku-btn.active{background:rgba(125,211,252,0.15);border-color:rgba(125,211,252,0.5);color:#7dd3fc;box-shadow:0 0 12px rgba(125,211,252,0.2)}
.comment-danmaku-btn:disabled{cursor:not-allowed}

/* 弹幕动画（兜底，如果 DanmakuLyric 未加载） */
@keyframes dmScroll{from{transform:translateX(0)}to{transform:translateX(-100vw)}}
@-webkit-keyframes dmScroll{from{-webkit-transform:translateX(0)}to{-webkit-transform:translateX(-100vw)}}

/* 评论弹幕样式区分 */
.dm-item.comment-dm-item{color:rgba(255,230,200,0.9) !important;font-style:italic}


/* ============================================================
   全局液态玻璃系统 · Liquid Glass v6
   设计理念：CSS 优先，全浏览器统一视觉效果。
   - 极轻 blur（2-3px）+ 高饱和（200%+）= 通透真玻璃
   - .lg-edge 由 liquid-glass.js v6 注入：色散边缘 + 透镜渐变 + 镜面高光
   - Chrome/Edge 桌面端额外启用 SVG feDisplacementMap 真像素折射
   - 移动端纯 CSS，60fps 流畅
   ============================================================ */
:root{
  --glass-blur-desktop:3px;
  --glass-blur-mobile:2px;
  --glass-saturate:200%;
}

/* —— 卡片 / 胶囊 / 按钮 / 输入框：轻玻璃基底 —— */
.glass,.tools-hub-card,.download-card,.profile-card,.setting-card,
.playlist-card,.share-card,.video-card,.app-result-card,
.tool-search-input,.search-input,.search-select,.form-input,.tools-stat-item,
.layout-toggle,.feedback-fab,.cmdk-hint-badge,.pcp-top-pill{
  backdrop-filter:blur(3px) saturate(200%) brightness(1.1) contrast(1.03) !important;
  -webkit-backdrop-filter:blur(3px) saturate(200%) brightness(1.1) contrast(1.03) !important;
  background-color:rgba(18,20,30,0.14) !important;
}

/* —— 导航 / 顶栏 / 播放条 / 搜索 / 浮层：中等通透玻璃 —— */
.bottom-nav,.header,.player-bar,.search-bar,.music-search-panel,
.ai-quick-bar,.cmdk-panel,.feedback-modal,.music-more-menu,.player-more-menu,
.quality-select,.modal,.random-panel,.pcp-dock,.pcp-dsp-panel,.pcp-more-panel,
.pcp-shelf-panel,.polar-modal,.recognize-modal,.player-expand-modal,
.music-more-menu,.player-more-menu{
  backdrop-filter:blur(4px) saturate(210%) brightness(1.12) contrast(1.03) !important;
  -webkit-backdrop-filter:blur(4px) saturate(210%) brightness(1.12) contrast(1.03) !important;
  background-color:rgba(16,18,28,0.18) !important;
}

/* —— 折射边缘高光层（由 liquid-glass.js v6 注入 .lg-edge） —— */
/* CSS 基底样式，JS 会根据浏览器能力增强（不支持真折射时 boost 1.4x） */
.lg-edge{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  z-index:0;mix-blend-mode:screen;
  /* 色散边缘：红蓝偏移模拟棱镜分光 + 镜面高光 */
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.18),
    inset 0 1.5px 0 rgba(255,255,255,.45),
    inset 0 -1px 0 rgba(0,0,0,.16),
    inset 2px 0 4px rgba(255,80,80,.10),
    inset -2px 0 4px rgba(80,170,255,.10),
    inset 1px 0 1px rgba(255,255,255,.32),
    inset -1px 0 1px rgba(0,0,0,.12);
  /* 透镜渐变：中心通透，边缘微亮 + 对角线高光 */
  background:
    radial-gradient(ellipse at center, transparent 35%, rgba(255,255,255,0.03) 70%, rgba(255,255,255,0.10) 100%),
    linear-gradient(135deg, rgba(255,255,255,.20), rgba(255,255,255,0) 36%, rgba(255,255,255,0) 64%, rgba(255,255,255,.12));
}

/* —— 模态遮罩：仅轻微压暗、不模糊——保留背后内容锐利，让浮层做真正的折射 —— */
.modal-backdrop,.cmdk-overlay,.ai-quick-result-overlay,.feedback-modal-overlay,
.polar-modal-overlay,.recognize-modal-overlay{
  background-color:rgba(0,0,0,0.15) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* 玩家货架遮罩：同样仅压暗 */
.pcp-shelf-overlay{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background-color:rgba(2,4,12,0.42) !important;
}

/* —— 播放器自定义背景下的玻璃需更通透以显露背景 —— */
.pc-player.has-custom-bg .pcp-topbar,
.pc-player.has-custom-bg .pcp-dock,
.pc-player.has-custom-bg .pcp-right{
  backdrop-filter:blur(5px) saturate(2.0) brightness(1.12) !important;
  -webkit-backdrop-filter:blur(5px) saturate(2.0) brightness(1.12) !important;
}

/* —— 性能优化：隐藏模态框不应用 backdrop-filter（避免 GPU 空转）—— */
.modal[style*="visibility:hidden"],
.modal[style*="visibility: hidden"],
.modal-backdrop:not(.active) .modal,
.lyric-modal[style*="visibility:hidden"],
#downloadModal[style*="visibility:hidden"]{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* —— 性能优化：小元素降低 blur 强度 —— */
.btn:not(.btn-lg):not(.btn-block){
  backdrop-filter:blur(3px) !important;
  -webkit-backdrop-filter:blur(3px) !important;
}
.pcp-icon-btn,.pcp-float-btn{
  backdrop-filter:blur(3px) saturate(1.3) !important;
  -webkit-backdrop-filter:blur(3px) saturate(1.3) !important;
}
.card-icon-wrap{
  backdrop-filter:blur(3px) !important;
  -webkit-backdrop-filter:blur(3px) !important;
}
.search-input,.search-select,.form-input{
  backdrop-filter:blur(2px) saturate(1.3) !important;
  -webkit-backdrop-filter:blur(2px) saturate(1.3) !important;
}
.setting-card,.download-card,.tools-stat-item,.layout-toggle{
  backdrop-filter:blur(2px) saturate(1.3) !important;
  -webkit-backdrop-filter:blur(2px) saturate(1.3) !important;
}
.hitokoto{
  backdrop-filter:blur(4px) brightness(1.08) !important;
  -webkit-backdrop-filter:blur(4px) brightness(1.08) !important;
}
.weather-widget{
  backdrop-filter:blur(3px) !important;
  -webkit-backdrop-filter:blur(3px) !important;
}





/* ============================================================
 *  极简单图标工具中心 — 样式（iOS App Store 风格）
 * ============================================================ */

/* 舞台 */
.tools-3d-stage {
  position: relative;
  width: 100%;
  height: 480px;
  min-height: 400px;
  margin: 0 auto 20px;
  border-radius: var(--radius-xl, 24px);
  overflow: hidden;
  background: #08090f;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.tools-3d-stage:active { cursor: grabbing; }

/* 图标容器 */
.app-icon-container {
  position: relative;
  width: 140px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: 32px;
}

/* App Store 级图标 */
.app-icon {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  will-change: transform;
  overflow: hidden;
  box-shadow:
    0 12px 40px rgba(0,0,0,0.4),
    0 4px 12px rgba(0,0,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.25);
}

/* 图标渐变底 */
.app-icon-bg {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 0;
}

/* iOS 式顶部高光弧 */
.app-icon-gloss {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  border-radius: 28px 28px 100% 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.05) 60%, transparent 100%);
  z-index: 1;
  pointer-events: none;
}

/* 底部内阴影（增加深度） */
.app-icon-shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  border-radius: 0 0 28px 28px;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  z-index: 1;
  pointer-events: none;
}

/* 图标字体 */
.app-icon i {
  position: relative;
  z-index: 2;
  font-size: 48px;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.2);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
}

/* 图标外发光（工具配色光晕） */
.app-icon::after {
  content: '';
  position: absolute;
  inset: -20px;
  border-radius: 40px;
  background: radial-gradient(circle, var(--c1, #6366f1)30 0%, transparent 70%);
  z-index: -1;
  filter: blur(15px);
  opacity: 0.5;
  pointer-events: none;
}

/* 信息区 */
.app-icon-info {
  text-align: center;
  z-index: 5;
  pointer-events: none;
  padding: 0 24px;
}
.app-icon-name {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  letter-spacing: -0.5px;
}
.app-icon-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.4);
  margin: 0;
  line-height: 1.5;
}

/* 导航箭头 */
.gallery-nav {
  position: absolute;
  top: 42%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(8px) saturate(1.3);
  -webkit-backdrop-filter: blur(8px) saturate(1.3);
  border: 0.5px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.4);
  font-size: 14px;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s cubic-bezier(0.22,1,0.36,1);
}
.gallery-nav:hover {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.2);
  color: #fff;
}
.gallery-nav:active { transform: translateY(-50%) scale(0.92); }
.gallery-nav-prev { left: 20px; }
.gallery-nav-next { right: 20px; }

/* 章节进度指示器 */
.gallery-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 8px;
}
.g-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.2);
  cursor: pointer;
  padding: 0;
  transition: all 0.4s cubic-bezier(0.22,1,0.36,1);
}
.g-dot:hover { background: rgba(255,255,255,0.4); transform: scale(1.3); }
.g-dot.active {
  background: #fff;
  width: 20px;
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(255,255,255,0.4);
}

/* 折叠抽屉 */
.tools-3d-drawer {
  margin: 0 auto 24px;
  max-width: 920px;
}
.tools-3d-drawer-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  border: none;
  border-radius: var(--radius-lg, 16px);
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(8px) saturate(1.4);
  -webkit-backdrop-filter: blur(8px) saturate(1.4);
  border: 0.5px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.7);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.22,1,0.36,1);
}
.tools-3d-drawer-toggle:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.15);
  transform: translateY(-1px);
}
.tools-3d-drawer-toggle span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tools-3d-drawer-toggle .tools-3d-drawer-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 9999px;
  background: rgba(212,160,48,0.2);
  color: #f5c04a;
  font-size: 12px;
  font-weight: 700;
}
.tools-3d-drawer-chevron {
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1);
  font-size: 13px;
  opacity: 0.6;
}
.tools-3d-drawer.expanded .tools-3d-drawer-chevron {
  transform: rotate(180deg);
}

/* 抽屉内容 */
.tools-3d-drawer-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.22,1,0.36,1), margin-top 0.3s ease;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.tools-3d-drawer.expanded .tools-3d-drawer-content {
  max-height: 1200px;
  margin-top: 12px;
}

/* 抽屉工具项 */
.tools-3d-drawer-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: none;
  border-radius: var(--radius-md, 12px);
  background: rgba(255,255,255,0.04);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: 0.5px solid rgba(255,255,255,0.06);
  cursor: pointer;
  text-align: left;
  transition: all 0.3s cubic-bezier(0.22,1,0.36,1);
  opacity: 0;
  transform: translateY(8px);
  animation: t3dDrawerItemIn 0.4s cubic-bezier(0.22,1,0.36,1) forwards;
}
.tools-3d-drawer.expanded .tools-3d-drawer-item {
  animation-play-state: running;
}
@keyframes t3dDrawerItemIn {
  to { opacity: 1; transform: translateY(0); }
}

.tools-3d-drawer-item:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.15);
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.tools-3d-drawer-icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.2);
}

.tools-3d-drawer-name {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  white-space: nowrap;
}
.tools-3d-drawer-desc {
  font-size: 11px;
  color: rgba(255,255,255,0.4);
  margin-left: auto;
  white-space: nowrap;
}

/* 搜索时隐藏 3D 舞台和抽屉 */
body.tool-searching .tools-3d-stage,
body.tool-searching .tools-3d-drawer { display: none !important; }
body.tool-searching .tools-hub-cards-wrap { display: block !important; }

/* 移动端适配 */
@media (max-width: 768px) {
  .tools-3d-stage {
    height: 420px;
    min-height: 360px;
    border-radius: var(--radius-lg, 16px);
  }
  .app-icon { width: 96px; height: 96px; border-radius: 22px; }
  .app-icon i { font-size: 38px; }
  .app-icon-container { width: 110px; height: 110px; margin-bottom: 24px; }
  .app-icon-name { font-size: 22px; }
  .app-icon-desc { font-size: 13px; }
  .gallery-nav { width: 34px; height: 34px; font-size: 12px; }
  .gallery-nav-prev { left: 10px; }
  .gallery-nav-next { right: 10px; }
  .tools-3d-drawer-content {
    grid-template-columns: 1fr;
  }
  .tools-3d-drawer-desc { display: none; }
}

/* 主题适配 */
.theme-light .tools-3d-stage {
  background: radial-gradient(ellipse at 50% 50%, rgba(240,242,248,0.6) 0%, rgba(220,225,235,0.9) 100%);
}
.theme-light .tools-3d-drawer-toggle {
  background: rgba(0,0,0,0.03);
  border-color: rgba(0,0,0,0.08);
  color: rgba(0,0,0,0.7);
}
.theme-light .tools-3d-drawer-item {
  background: rgba(0,0,0,0.02);
  border-color: rgba(0,0,0,0.06);
}
.theme-light .tools-3d-drawer-item:hover {
  background: rgba(0,0,0,0.05);
  border-color: rgba(0,0,0,0.12);
}
.theme-light .tools-3d-drawer-name { color: rgba(0,0,0,0.85); }
.theme-light .tools-3d-drawer-desc { color: rgba(0,0,0,0.4); }
