:root{--primary-gradient: linear-gradient(135deg, #FF6B6B, #6B66FF);--secondary-gradient: linear-gradient(135deg, #36D1DC, #5B86E5);--accent-gradient: linear-gradient(135deg, #FC466B, #3F5EFB);--success-color: #00f2c3;--warning-color: #ff8d72;--text-primary: #2D3748;--text-secondary: #4A5568;--bg-primary: #f8f9fa;--card-bg: rgba(255, 255, 255, .92);--border-radius: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .1);--primary: #4CAF50;--primary-light: #81C784;--primary-dark: #388E3C;--text-disabled: #9e9e9e;--background-light: #f5f5f5;--background-dark: #e0e0e0;--card-background: #ffffff;--success: #4caf50;--warning: #ff9800;--error: #f44336}*{margin:0;padding:0;box-sizing:border-box;font-family:PingFang SC,Microsoft YaHei,sans-serif}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 10% 10%,rgba(107,102,255,.1),transparent 40%),radial-gradient(circle at 90% 20%,rgba(255,107,107,.1),transparent 40%),radial-gradient(circle at 50% 50%,rgba(255,141,114,.05),transparent 60%),radial-gradient(circle at 80% 80%,rgba(0,242,195,.1),transparent 40%);z-index:-1}.app{max-width:1200px;margin:0 auto;padding:20px;text-align:center;transition:all .3s ease}.nav-header{display:flex;justify-content:space-between;align-items:center;padding:20px 0;margin-bottom:40px}.logo{display:flex;align-items:center;gap:12px}.logo-text{font-size:2.5rem;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0px 2px 4px rgba(0,0,0,.1)}.logo-icon{font-size:2rem;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text}.logo-domain{font-size:1rem;color:var(--text-secondary)}.nav-links{display:flex;gap:20px;align-items:center}.nav-button{padding:10px 16px;background:var(--secondary-gradient);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:600;transition:all .3s ease;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #3b82f633;text-decoration:none}.nav-button:hover{transform:translateY(-3px);box-shadow:0 6px 16px #3b82f64d}.upload-section{background:var(--card-bg);border-radius:var(--border-radius);padding:30px;box-shadow:0 10px 30px #0000000d;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:var(--spacing-lg) 0;transition:all .3s ease}.upload-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:var(--primary-gradient)}.upload-header{margin-bottom:24px;text-align:left}.upload-header h2{font-size:1.8rem;margin-bottom:10px;position:relative;display:inline-block}.upload-header h2:after{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:3px;background:var(--secondary-gradient);border-radius:3px}.file-upload{border:2px dashed #d1d5db;border-radius:var(--border-radius);padding:34px;text-align:center;transition:all .3s ease;cursor:pointer;margin-bottom:0;position:relative;overflow:hidden}.file-upload:hover{border-color:#6b66ff;background-color:#6b66ff0d}.privacy-mode{display:flex;align-items:center;gap:8px;margin:24px 0;padding:16px;background-color:#6b66ff14;border-radius:var(--border-radius)}.privacy-mode-text{font-size:.9rem;color:var(--text-secondary)}.analyze-button{background:var(--primary-gradient);color:#fff;border:none;padding:14px 32px;border-radius:var(--border-radius);font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:10px;justify-content:center;width:100%;box-shadow:0 10px 20px #ff6b6b33;margin-top:20px}.analyze-button:hover{transform:translateY(-3px);box-shadow:0 15px 25px #ff6b6b4d}.analyze-button:disabled{cursor:not-allowed;transform:none;color:#fff;background:var(--primary-gradient)}.result-section{margin-top:var(--spacing-lg);padding:var(--spacing-lg);border:none;border-radius:var(--border-radius);background:var(--card-bg);box-shadow:0 10px 30px #0000000d;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.result-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:var(--accent-gradient)}.result-section:hover{box-shadow:var(--shadow-lg)}.result-title{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.score-row{font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.score{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);background-color:#4caf501a;display:inline-block}.score.exellent{color:var(--success);background-color:#4caf501a}.score.good{color:var(--warning);background-color:#ffc1071a}.score.normal{color:var(--error);background-color:#f443361a}.summary-quote{font-size:16px;background-color:var(--background-light);border-radius:var(--radius-lg);border:1px solid var(--background-dark);padding:var(--spacing-md);line-height:1.6;margin:var(--spacing-md) 0;text-align:left;box-shadow:var(--shadow-sm);position:relative}.summary-quote:before{content:'"';position:absolute;top:-10px;left:10px;font-size:40px;color:var(--primary-light);font-family:serif}.summary-quote:after{content:'"';position:absolute;bottom:-20px;right:10px;font-size:40px;color:var(--primary-light);font-family:serif}.comments ul{list-style:none;padding:0;margin:var(--spacing-md) 0}.comments li{margin:var(--spacing-sm) 0;color:var(--text-secondary);padding:var(--spacing-sm);border-radius:var(--radius-md);background-color:var(--background-light);transition:all .2s ease}.comments li:hover{background-color:var(--background-dark);transform:translate(4px)}.dimensions-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:var(--spacing-md);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.dimensions-table tr{border-bottom:1px solid var(--background-dark);transition:background-color .2s ease}.dimensions-table tr:hover{background-color:var(--background-light)}.dimensions-table th,.dimensions-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left}.dimensions-table th{background-color:var(--primary-light);color:#fff;font-weight:600}.dimension-row{white-space:pre-wrap;line-height:1.5}.tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin:var(--spacing-md) 0}.tag{margin:0;background-color:var(--background-light);border:1px solid var(--background-dark);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:.9rem;color:var(--text-secondary);transition:all .2s ease}.tag:hover{background-color:var(--primary-light);color:#fff;transform:translateY(-2px)}.ranking-section{background:var(--card-bg);border-radius:var(--border-radius);padding:30px;box-shadow:0 10px 30px #0000000d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:var(--spacing-lg) 0}.ranking-event-row{width:100%;justify-content:center;display:flex;flex-wrap:wrap;gap:10px}.ranking-header{text-align:center;margin-bottom:30px}.ranking-header h2{font-size:2rem;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px;display:inline-block}.ranking-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px;justify-content:center}.ranking-tab{padding:8px 16px;background-color:#f1f5f9;border-radius:30px;font-size:.9rem;cursor:pointer;transition:all .3s ease}.ranking-tab.active{background:var(--secondary-gradient);color:#fff;box-shadow:0 4px 12px #3b82f633}.ranking-tab:hover:not(.active){background-color:#e2e8f0}.song-list-1{display:grid;grid-template-columns:1fr;gap:20px}.song-card{display:flex;align-items:center;padding:16px;border-radius:var(--border-radius);background-color:#fff;box-shadow:0 4px 20px #0000000d;transition:all .3s ease;position:relative;cursor:pointer}.song-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000014}.song-rank{font-size:1.4rem;font-weight:700;width:40px;text-align:center;color:var(--text-secondary)}.song-info{flex:1;margin-left:15px}.song-title{font-size:1.1rem;font-weight:600;margin-bottom:5px}.song-format{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.8rem;margin-right:8px;background-color:#6b66ff1a;color:#6b66ff}.song-category{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.8rem;background-color:#00f2c31a;color:#00a989;margin-right:auto}.song-score{font-size:1.1rem;font-weight:700;width:60px;text-align:center;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.instructions-section{background:var(--card-bg);border-radius:var(--border-radius);padding:30px;box-shadow:0 10px 30px #0000000d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:var(--spacing-lg) 0}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #e2e8f0}.section-title i,.section-title svg{font-size:1.6rem;background:var(--secondary-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.section-title h2{font-size:1.5rem}.feature-list{margin:20px 0}.feature-item{display:flex;align-items:flex-start;margin-bottom:12px;gap:8px}.feature-item i,.feature-item svg{color:#6b66ff;margin-top:4px;flex-shrink:0}.steps-list{margin:20px 0}.step-item{display:flex;align-items:flex-start;margin-bottom:16px;gap:12px}.step-number{display:flex;justify-content:center;align-items:center;width:30px;height:30px;background:var(--secondary-gradient);border-radius:50%;color:#fff;font-weight:600;flex-shrink:0}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.animated-icon{animation:float 3s ease-in-out infinite}.readme-section{margin:var(--spacing-lg) 0;padding:var(--spacing-lg);border:1px solid var(--background-dark);border-radius:var(--radius-lg);background-color:var(--card-background);text-align:left;box-shadow:var(--shadow-md)}.readme-section summary{cursor:pointer;font-weight:700;color:var(--text-primary);padding:var(--spacing-sm) 0;text-align:left;outline:none;transition:color .2s ease}.readme-section summary:hover{color:var(--primary)}.readme-content{padding:var(--spacing-md) 0;line-height:1.6;text-align:left}.readme-content h3{margin-top:0;color:var(--primary);text-align:left;font-size:1.5rem;margin-bottom:var(--spacing-md)}.readme-content ul,.readme-content ol{padding-left:var(--spacing-lg)}.readme-content li{margin:var(--spacing-sm) 0;line-height:1.5}@media (max-width: 768px){.app,.upload-section,.result-section{padding:var(--spacing-md)}.result-title{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.dimensions-table th,.dimensions-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:.9rem}}.fade-in-up{animation:fadeInUp .5s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-spinner{display:inline-block;width:40px;height:40px;border:4px solid rgba(76,175,80,.1);border-radius:50%;border-top-color:var(--primary);animation:spin 1s linear infinite}.progress-bar{width:100%;height:8px;background-color:var(--background-dark);border-radius:var(--radius-sm);overflow:hidden;margin:var(--spacing-md) 0}.progress-bar-fill{height:100%;background:var(--primary-gradient);border-radius:var(--radius-sm);transition:width .3s ease}.app-container{max-width:1200px;margin:0 auto;padding:20px}.login-btn,.recharge-btn{display:flex;align-items:center;gap:5px;background:none;border:none;color:#333;font-size:14px;cursor:pointer;padding:5px 10px;border-radius:4px;transition:all .2s;text-decoration:none}.login-btn:hover,.recharge-btn:hover{background-color:#f1f1f1}.recharge-btn{background-color:#f8f4ff;border:1px solid #e6e1f9}.recharge-btn:hover{background-color:#f1ebff;transform:translateY(-2px);box-shadow:0 2px 5px #6b66ff1a}.recharge-btn .nav-icon{color:#f56c6c}.nav-icon{font-size:18px;color:#6b66ff}.error-boundary-container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#6b66ff0d,#ff6b661a);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;padding:20px;box-sizing:border-box}.error-boundary-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #00000026,0 0 0 1px #6b66ff1a;padding:40px;max-width:600px;width:100%;text-align:center;position:relative;overflow:hidden;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.error-boundary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#6b66ff,#ff6b66)}.error-icon-container{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#ff6b66,#ff9f66);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 10px 20px #ff6b664d}.error-icon{color:#fff;font-size:40px;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.error-title{font-size:28px;color:#333;margin-bottom:16px;font-weight:700}.error-message{font-size:18px;color:#666;margin-bottom:32px;line-height:1.5}.error-details-container{margin-bottom:32px;text-align:left}.error-details-container summary{cursor:pointer;color:#6b66ff;font-weight:600;padding:8px 0;outline:none;-webkit-user-select:none;user-select:none}.error-details-container summary:hover{color:#ff6b66}.error-technical-details{background:#f8f9fa;border-radius:8px;padding:16px;margin-top:8px;font-size:14px;color:#555;max-height:200px;overflow-y:auto;border:1px solid #eee}.error-technical-details pre{white-space:pre-wrap;word-break:break-word;margin:8px 0 0;font-family:monospace;font-size:12px;color:#777}.error-actions{display:flex;justify-content:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.error-action-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s ease;border:none;outline:none}.error-action-button.refresh{background:linear-gradient(135deg,#6b66ff,#8b66ff);color:#fff;box-shadow:0 4px 12px #6b66ff4d}.error-action-button.refresh:hover{transform:translateY(-2px);box-shadow:0 6px 16px #6b66ff66}.error-action-button.back{background:#fff;color:#6b66ff;border:2px solid #6B66FF}.error-action-button.back:hover{background:#6b66ff0d;transform:translateY(-2px)}.error-action-button.home{background:#fff;color:#ff6b66;border:2px solid #FF6B66}.error-action-button.home:hover{background:#ff6b660d;transform:translateY(-2px)}.error-help-text{font-size:14px;color:#888;line-height:1.5}@media (max-width: 600px){.error-boundary-card{padding:30px 20px}.error-icon-container{width:60px;height:60px}.error-icon{font-size:30px}.error-title{font-size:24px}.error-message{font-size:16px}.error-actions{flex-direction:column;gap:10px}.error-action-button{width:100%}}.user-info{display:flex;align-items:center;gap:15px}.user-name,.user-credits{display:flex;align-items:center;gap:5px;font-size:14px;color:#333}.user-icon,.credits-icon,.logout-icon{font-size:18px;color:#6b66ff}.logout-button{background:none;border:none;display:flex;align-items:center;gap:5px;cursor:pointer;color:#333;font-size:14px;padding:5px 10px;border-radius:4px;transition:background-color .2s}.logout-button:hover{background-color:#f1f1f1}.recharge-button{background:none;border:none;color:#6b66ff;cursor:pointer;font-size:18px;display:flex;align-items:center;padding:0;margin-left:2px}.recharge-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.recharge-modal{background-color:#fff;border-radius:10px;padding:25px;width:90%;max-width:350px;box-shadow:0 5px 15px #0003}.recharge-modal h3{margin-top:0;margin-bottom:5px;color:#333}.recharge-info{color:#666;font-size:14px;margin-bottom:15px}.package-selection{margin-bottom:20px}.package-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}.package-option{position:relative;border:1px solid #e0e0e0;border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:all .2s ease;background:linear-gradient(to bottom,#fff,#f8f8ff);box-shadow:0 2px 4px #0000000d;overflow:hidden}.package-option:hover{border-color:#6b66ff;transform:translateY(-2px);box-shadow:0 4px 8px #6b66ff26}.package-option.selected{border-color:#6b66ff;background:linear-gradient(to bottom,#f0f0ff,#e8e8ff);box-shadow:0 2px 8px #6b66ff33}.package-amount{font-weight:700;color:#333;font-size:16px;margin-bottom:5px}.package-credits{color:#6b66ff;font-size:14px}.package-tag{position:absolute;top:0;right:0;background:linear-gradient(135deg,#6b66ff,#8c87ff);color:#fff;font-size:12px;padding:3px 8px;border-bottom-left-radius:8px;font-weight:700;box-shadow:0 2px 4px #6b66ff33}.package-option:nth-child(1) .package-tag{background:linear-gradient(135deg,#90caf9,#64b5f6)}.package-option:nth-child(2) .package-tag{background:linear-gradient(135deg,#81c784,#4caf50)}.package-option:nth-child(3) .package-tag{background:linear-gradient(135deg,#ffd54f,#ffc107)}.package-option:nth-child(4) .package-tag{background:linear-gradient(135deg,#ff8a65,#ff5722)}.package-option:nth-child(5) .package-tag{background:linear-gradient(135deg,#9575cd,#673ab7)}.package-option:nth-child(6) .package-tag{background:linear-gradient(135deg,#f06292,#e91e63)}.payment-method{margin-bottom:20px}.payment-options{display:flex;gap:15px;margin-top:10px}.payment-option{flex:1;border:1px solid #e0e0e0;border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:all .2s ease;background:linear-gradient(to bottom,#fff,#f8f8ff)}.payment-option:hover{border-color:#6b66ff}.payment-option.selected{border-color:#6b66ff;background:linear-gradient(to bottom,#f0f0ff,#e8e8ff)}.payment-icon{font-size:24px;margin-bottom:8px}.alipay-icon{color:#1677ff}.wxpay-icon{color:#07c160}.payment-name{font-size:14px;color:#333}.recharge-error{background-color:#ffebee;color:#d32f2f;padding:10px;border-radius:5px;margin-bottom:15px;font-size:14px}.recharge-success{background-color:#e8f5e9;color:#2e7d32;padding:10px;border-radius:5px;margin-bottom:15px;font-size:14px}.recharge-buttons{display:flex;justify-content:space-between;margin-top:20px}.cancel-button,.confirm-button{padding:10px 15px;border-radius:5px;border:none;cursor:pointer;font-size:14px}.cancel-button{background-color:#f1f1f1;color:#333}.confirm-button{background:var(--primary-gradient, linear-gradient(90deg, #6B66FF 0%, #8C87FF 100%));color:#fff}.cancel-button:disabled,.confirm-button:disabled{opacity:.7;cursor:not-allowed}.login-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.login-modal{background-color:#fff;border-radius:10px;padding:30px;width:90%;max-width:400px;box-shadow:0 5px 15px #0003;position:relative}.close-button{position:absolute;top:15px;right:15px;background:none;border:none;font-size:24px;cursor:pointer;color:#666}.login-modal h2{margin-top:0;margin-bottom:5px;color:#333;font-size:24px}.login-subtitle{color:#666;margin-bottom:20px;font-size:14px}.login-tabs{display:flex;margin-bottom:20px;border-bottom:1px solid #eee}.login-tab{flex:1;padding:10px;background:none;border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;color:#666}.login-tab.active{color:#6b66ff;border-bottom:2px solid #6B66FF}.login-error{background-color:#ffebee;color:#d32f2f;padding:10px;border-radius:5px;margin-bottom:15px;font-size:14px}.login-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:14px;color:#333}.form-group input{padding:12px;border:1px solid #ddd;border-radius:5px;font-size:16px}.verification-code{position:relative}.send-code-btn{position:absolute;right:5px;top:32px;background-color:transparent;border:none;color:#6b66ff;cursor:pointer;font-size:14px;padding:8px}.send-code-btn:disabled{color:#999;cursor:not-allowed}.login-button,.google-login-button{background:var(--primary-gradient, linear-gradient(90deg, #6B66FF 0%, #8C87FF 100%));color:#fff;border:none;border-radius:5px;padding:12px;font-size:16px;cursor:pointer;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px}.login-button:disabled,.google-login-button:disabled{background:#ccc;cursor:not-allowed}.google-login{display:flex;flex-direction:column;align-items:center;margin-top:10px}.google-login-button{width:100%}.toast-message{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:4px;color:#fff;font-size:14px;z-index:1000;animation:slideIn .3s ease,fadeOut .3s ease forwards;animation-delay:0s,1.7s;box-shadow:0 2px 8px #00000026}.toast-info{background-color:#1890ff}.toast-success{background-color:#52c41a}.toast-error{background-color:#ff4d4f}.toast-warning{background-color:#faad14}@keyframes slideIn{0%{transform:translate(-50%,-20px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.tooltip{background-color:#000c;color:#fff;padding:8px 12px;border-radius:6px;font-size:14px;max-width:200px;text-align:center;z-index:1000;box-shadow:0 2px 4px #0003;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.score{font-size:24px;font-weight:700}.score .exellent{color:#4caf50}.score .good{color:#f7cb73}.score .normal{color:#ff3c00}.tag-entry-content{height:30px;padding:2px 10px;opacity:.8;background:#eed5a1;border-radius:8px;box-shadow:0 2px 6px #00000014;transform:rotate(-1deg);transition:all .15s ease-in-out;color:#4a3c1a;font-size:18px;font-weight:500;display:inline-flex;align-items:center;white-space:nowrap;cursor:pointer}.tag-entry-content:hover{opacity:1;text-decoration:none}:root{--primary: #4CAF50;--primary-light: #81C784;--primary-dark: #388E3C;--primary-gradient: linear-gradient(135deg, #FF6B6B, #6B66FF);--secondary: #5C6BC0;--secondary-light: #7986CB;--secondary-dark: #3949AB;--secondary-gradient: linear-gradient(135deg, #36D1DC, #5B86E5);--accent: #FF9800;--accent-light: #FFB74D;--accent-dark: #F57C00;--success: #4CAF50;--warning: #FFC107;--error: #F44336;--info: #2196F3;--text-primary: #212121;--text-secondary: #757575;--text-disabled: #9E9E9E;--background: #FFFFFF;--background-light: #F5F5F5;--background-dark: #E0E0E0;--card-background: #FFFFFF;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .14);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-round: 50%;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px}.dark-theme{--primary: #66BB6A;--primary-light: #81C784;--primary-dark: #4CAF50;--secondary: #7986CB;--secondary-light: #9FA8DA;--secondary-dark: #5C6BC0;--text-primary: #FFFFFF;--text-secondary: #B0BEC5;--text-disabled: #78909C;--background: #121212;--background-light: #1E1E1E;--background-dark: #0A0A0A;--card-background: #1E1E1E}body{font-family:Poppins,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;color:var(--text-primary);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background)}h1,h2,h3,h4,h5,h6{margin-top:0;font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:2.5rem;margin-bottom:var(--spacing-sm)}h2{font-size:2rem}h3{font-size:1.75rem;margin-bottom:var(--spacing-sm)}h4{font-size:1.5rem;margin-bottom:var(--spacing-sm)}h5{font-size:1.25rem;margin-bottom:var(--spacing-sm)}h6{font-size:1rem;margin-bottom:var(--spacing-sm)}p{margin-top:0;margin-bottom:var(--spacing-md);line-height:1.6}a{color:var(--primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-dark);text-decoration:underline}button,.button{font-family:inherit;font-size:1rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.button-primary{background:var(--primary-gradient);color:#fff;box-shadow:var(--shadow-sm)}.button-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-secondary{background:var(--secondary-gradient);color:#fff;box-shadow:var(--shadow-sm)}.button-secondary:hover{background:var(--secondary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.button-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.button-outline:hover{background:#4caf501a}.button-text{background:transparent;color:var(--primary);padding:var(--spacing-xs) var(--spacing-sm)}.button-text:hover{background:#4caf501a}button:disabled,.button:disabled{background:var(--background-dark);color:var(--text-disabled);cursor:not-allowed;box-shadow:none;transform:none}.card{background:var(--card-background);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:box-shadow .3s ease}.card:hover{box-shadow:var(--shadow-md)}@media (max-width: 768px){h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5,h6{font-size:1rem}body{font-size:14px}}.fade-in{animation:fadeIn .3s ease-in}.scale-in{animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.share-poster-root{width:100vw;min-height:95vh;background:linear-gradient(135deg,#6b66ff1a,#6b66ff0d);display:flex;align-items:center;justify-content:center;padding:36px 0}.share-poster-card{position:relative;width:380px;min-height:520px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #6b66ff1a,0 1.5px #6b66ff33;padding:46px 32px 72px;display:flex;flex-direction:column;align-items:center;overflow:hidden;transition:box-shadow .3s cubic-bezier(.4,2,.6,1),transform .2s cubic-bezier(.4,2,.6,1)}.card-mobile{width:90vw;min-height:600px;padding:48px 20px;position:relative}.poster-image-wrapper{width:260px;height:260px;border-radius:18px;overflow:hidden;margin-bottom:18px;box-shadow:0 4px 16px #00000014;background:#f9f6f2;position:relative;transition:box-shadow .3s,transform .2s,border-radius .3s}.image-wrapper-mobile{width:calc(90vw - 96px);height:calc(90vw - 96px);margin-bottom:24px}.poster-image-wrapper.circle{border-radius:50%;box-shadow:0 8px 32px #6b66ff26,0 2px 8px #6b66ff1a,0 0 0 8px #6b66ff0d;border:6px solid rgba(107,102,255,.2);overflow:visible}.poster-image{width:100%;height:100%;object-fit:cover;display:block;transition:border-radius .3s}.poster-image.circle{border-radius:50%;box-shadow:0 0 0 8px #6b66ff0d inset}.poster-image-overlay{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:32px;pointer-events:none;z-index:2;background:linear-gradient(180deg,#fff0 60%,#00000014)}.poster-song-title{font-family:Comic Sans MS,Chalkboard SE,PingFang SC,cursive,sans-serif;font-size:1.3rem;color:#fff;font-weight:700;text-shadow:0 2px 12px rgba(0,0,0,.25),0 1px 0 #5a4d2b;margin-bottom:4px;letter-spacing:1.2px;text-align:center;max-width:90%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.poster-song-author{font-size:1.1rem;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.25),0 1px 0 #5a4d2b;font-weight:700;font-family:PingFang SC,Microsoft YaHei,sans-serif;text-align:left;max-width:80%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.play-button{opacity:.6;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:#00000080;border-radius:50%;cursor:pointer;transition:opacity .3s ease;z-index:3}.play-button:hover{opacity:.8}.poster-title{font-family:Comic Sans MS,Chalkboard SE,PingFang SC,cursive,sans-serif;font-size:1.4rem;color:#4a3c1a;font-weight:700;margin-bottom:10px;letter-spacing:1.5px;text-align:center;text-shadow:0 2px 8px #f7e7c6}.poster-title-mobile{font-size:1.6rem;margin-bottom:16px}.poster-tape{position:absolute;width:60px;height:24px;border-radius:8px;z-index:2}.tape-top-left{top:10px;left:10px;transform:rotate(0)}.tape-top-right{top:16px;right:16px;text-align:right;transform:rotate(0)}.poster-tabs{display:flex;align-items:center;justify-content:center;gap:16px;margin:10px 0;width:100%}.poster-tab{font-size:1rem;color:#666;padding:6px 12px;border-radius:8px;cursor:pointer;transition:all .3s ease;background:#6b66ff0d}.poster-tab.active{color:#fff;background:#6b66ff;font-weight:500;box-shadow:0 2px 8px #6b66ff33}.poster-content{display:flex;flex-direction:row;justify-content:flex-start;padding:0;width:200%;transition:transform .5s cubic-bezier(.4,0,.2,1)}.poster-lyrics{font-size:1rem;width:50%;overflow-y:auto;overflow-x:hidden;height:auto;padding:20px;transition:opacity .32s}.poster-lyrics-mobile{font-size:1.2rem}.poster-message{width:50%;font-size:1rem;font-weight:500px;color:#333;background:#6b66ff0d;border-radius:12px;padding:20px;min-height:100px;text-align:center;font-family:PingFang SC,Microsoft YaHei,sans-serif;transition:opacity .32s,transform .18s;cursor:pointer}.poster-message:before{content:"“";position:absolute;top:-5px;left:10px;font-size:40px;color:var(--primary);font-family:serif}.poster-message-mobile{font-size:1.3rem;margin:20px 0;padding:20px}.poster-message:hover{box-shadow:0 6px 18px #6b66ff26;transform:scale(1.01) rotate(0)}.poster-tag-row{display:flex;gap:8px;justify-content:center;margin-bottom:12px}.poster-tag{font-size:.95rem;color:#6b66ff;background:#6b66ff1a;border-radius:8px;padding:4px 14px;letter-spacing:1px;font-family:Comic Sans MS,Chalkboard SE,cursive,sans-serif;box-shadow:0 2px 8px #6b66ff14;cursor:pointer;transition:box-shadow .25s,transform .18s,background .18s}@media screen and (max-width: 480px){.poster-tag{font-size:1.1rem;padding:6px 18px}}.poster-tag:hover{box-shadow:0 6px 18px #6b66ff26;background:#6b66ff26;color:#5652cc;transform:scale(1.05) rotate(-1deg)}.poster-logo{position:absolute;left:24px;bottom:24px;display:flex;align-items:center;gap:6px;color:#6b66ff;font-size:1.1rem;opacity:.92;cursor:pointer;transition:filter .2s,transform .18s}.poster-logo:hover{filter:drop-shadow(0 2px 8px rgba(107,102,255,.3));transform:scale(1.08) rotate(-2deg)}.poster-logo-icon{font-size:1.2rem;color:#6b66ff}.poster-logo-text{font-size:.8rem;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-weight:600}.poster-qrcode-placeholder{position:absolute;right:24px;bottom:24px;width:60px;height:60px;background:#6b66ff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#6b66ff;font-size:.95rem;font-family:PingFang SC,Microsoft YaHei,sans-serif;box-shadow:0 2px 8px #6b66ff14;cursor:pointer;transition:box-shadow .22s,transform .18s}.poster-qrcode-placeholder:hover{box-shadow:0 8px 24px #6b66ff26;background:#6b66ff26;color:#5652cc;transform:scale(1.05) rotate(1deg)}@keyframes poster-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.poster-image-wrapper.circle.is-rotating{animation:none}.poster-image.circle.is-rotating{animation:poster-rotate 30s linear infinite}.ranking-section{flex-direction:column;align-items:center}.rank-header{width:100%;height:auto;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;position:relative;flex-wrap:wrap}.poster-qrcode-placeholder{position:absolute;right:0;bottom:-10px;width:60px;height:60px;background:#6b66ff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#6b66ff;font-size:.95rem;font-family:PingFang SC,Microsoft YaHei,sans-serif;box-shadow:0 2px 8px #6b66ff14;cursor:pointer;transition:box-shadow .22s,transform .18s}.poster-qrcode-text{font-size:10px}.poster-qrcode-placeholder:hover{box-shadow:0 8px 24px #6b66ff26;background:#6b66ff26;color:#5652cc}.participate-activity{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:10px auto;width:100%;max-width:800px;gap:20px}.participate-button{background:linear-gradient(135deg,#d4af37,#bf9b30);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;width:140px;min-width:140px;box-shadow:0 4px 6px #0000001a;text-shadow:0 1px 2px rgba(0,0,0,.1)}.participate-button:hover{background:linear-gradient(135deg,#e0bb44,#d4af37);transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.participate-instructions{background:linear-gradient(to right,#d4af3714,#bfa76a1f);border-left:3px solid #d4af37;border-radius:8px;padding:12px 18px;font-size:14px;flex:1;box-shadow:0 3px 8px #0000000f}.instruction-item{margin:6px 0;color:#333;font-size:13px;line-height:1.5;position:relative;padding-left:4px}.music-rank-container{background-color:#121212;background-image:url("data:image/svg+xml,%3csvg%20width='1440'%20height='800'%20viewBox='0%200%201440%20800'%20xmlns='http://www.w3.org/2000/svg'%3e%3c!--%20Background%20gradient%20--%3e%3cdefs%3e%3clinearGradient%20id='bg-gradient'%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='100%25'%3e%3cstop%20offset='0%25'%20stop-color='%23121212'%20/%3e%3cstop%20offset='100%25'%20stop-color='%231e1e2e'%20/%3e%3c/linearGradient%3e%3c!--%20Sound%20wave%20pattern%20--%3e%3cpattern%20id='sound-wave'%20x='0'%20y='0'%20width='200'%20height='200'%20patternUnits='userSpaceOnUse'%3e%3cpath%20d='M0,100%20Q50,80%20100,100%20T200,100'%20stroke='rgba(107,%20102,%20255,%200.1)'%20fill='none'%20stroke-width='2'%20/%3e%3cpath%20d='M0,120%20Q50,150%20100,120%20T200,120'%20stroke='rgba(107,%20102,%20255,%200.07)'%20fill='none'%20stroke-width='1.5'%20/%3e%3cpath%20d='M0,80%20Q50,50%20100,80%20T200,80'%20stroke='rgba(107,%20102,%20255,%200.05)'%20fill='none'%20stroke-width='1.5'%20/%3e%3c/pattern%3e%3c!--%20Music%20note%20pattern%20--%3e%3cpattern%20id='music-notes'%20x='0'%20y='0'%20width='400'%20height='400'%20patternUnits='userSpaceOnUse'%3e%3ccircle%20cx='100'%20cy='100'%20r='3'%20fill='rgba(212,%20175,%2055,%200.15)'%20/%3e%3ccircle%20cx='300'%20cy='200'%20r='2'%20fill='rgba(212,%20175,%2055,%200.1)'%20/%3e%3ccircle%20cx='150'%20cy='300'%20r='4'%20fill='rgba(212,%20175,%2055,%200.12)'%20/%3e%3ccircle%20cx='250'%20cy='50'%20r='3'%20fill='rgba(212,%20175,%2055,%200.08)'%20/%3e%3cpath%20d='M180,120%20L180,170%20L175,175%20A5,5%200%201,0%20185,175%20L180,170'%20fill='rgba(212,%20175,%2055,%200.1)'%20/%3e%3cpath%20d='M280,220%20L280,270%20L275,275%20A5,5%200%201,0%20285,275%20L280,270'%20fill='rgba(212,%20175,%2055,%200.07)'%20/%3e%3c/pattern%3e%3c/defs%3e%3c!--%20Main%20background%20--%3e%3crect%20width='100%25'%20height='100%25'%20fill='url(%23bg-gradient)'%20/%3e%3c!--%20Pattern%20overlays%20--%3e%3crect%20width='100%25'%20height='100%25'%20fill='url(%23sound-wave)'%20opacity='0.7'%20/%3e%3crect%20width='100%25'%20height='100%25'%20fill='url(%23music-notes)'%20opacity='0.5'%20/%3e%3c!--%20Subtle%20glow%20effects%20--%3e%3ccircle%20cx='200'%20cy='200'%20r='300'%20fill='rgba(107,%20102,%20255,%200.03)'%20filter='blur(80px)'%20/%3e%3ccircle%20cx='1200'%20cy='600'%20r='250'%20fill='rgba(212,%20175,%2055,%200.025)'%20filter='blur(60px)'%20/%3e%3c/svg%3e");background-size:cover;background-attachment:fixed;color:#e0e0e0;min-height:100vh;padding:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.music-rank-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;position:relative;flex-wrap:wrap;padding:15px 0}.music-rank-logo{display:flex;align-items:center;cursor:pointer;padding:10px 15px;background-color:#1e1e2eb3;border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0003;border:1px solid rgba(107,102,255,.1);transition:all .3s ease}.music-rank-logo:hover{transform:translateY(-2px);box-shadow:0 10px 40px #6b66ff33;border:1px solid rgba(107,102,255,.3)}.music-rank-logo-icon{font-size:28px;color:#d4af37;margin-right:12px}.music-rank-logo-text{font-size:20px;font-weight:700;background:linear-gradient(135deg,#d4af37,#f5e7aa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}.music-rank-logo-domain{font-size:12px;color:#a0a0a0;margin-top:2px}.music-rank-qrcode{position:absolute;right:15px;top:15px;display:flex;flex-direction:column;align-items:center;background-color:#1e1e2eb3;border-radius:16px;padding:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0003;border:1px solid rgba(107,102,255,.1);transition:all .3s ease}.music-rank-qrcode:hover{transform:translateY(-2px);box-shadow:0 10px 40px #6b66ff33;border:1px solid rgba(107,102,255,.3)}.music-rank-qrcode-text{font-size:11px;color:#a0a0a0;margin-top:6px}.music-rank-participate{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:20px auto;width:100%;max-width:800px;gap:20px}@media (max-width: 768px){.music-rank-participate{flex-direction:column;gap:15px}}.music-rank-participate-button{background:linear-gradient(135deg,#d4af37,#bf9b30);color:#fff;border:none;border-radius:12px;padding:14px 24px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;width:160px;min-width:160px;box-shadow:0 8px 20px #0003;text-shadow:0 1px 2px rgba(0,0,0,.2)}.music-rank-participate-button:hover{background:linear-gradient(135deg,#e0bb44,#d4af37);transform:translateY(-2px);box-shadow:0 12px 28px #00000040}.music-rank-instructions{background-color:#1e1e2eb3;border-left:3px solid #d4af37;border-radius:12px;padding:15px 20px;font-size:14px;flex:1;box-shadow:0 8px 32px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.music-rank-instruction-item{margin:8px 0;color:silver;font-size:13px;line-height:1.6;position:relative;padding-left:20px}.music-rank-instruction-item:before{content:"•";position:absolute;left:0;color:#d4af37;font-size:16px;line-height:1}.music-rank-section{background-color:#1e1e2eb3;border-radius:20px;padding:25px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0003;border:1px solid rgba(107,102,255,.1);margin-bottom:30px;max-width:1200px;margin-left:auto;margin-right:auto}.music-rank-title{font-size:24px;font-weight:700;margin-bottom:20px;text-align:center;background:linear-gradient(135deg,#d4af37,#f5e7aa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}.music-rank-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:25px;justify-content:center}.music-rank-tab{background-color:#28283c99;border:1px solid rgba(107,102,255,.2);border-radius:12px;padding:10px 16px;font-size:14px;color:#a0a0a0;cursor:pointer;transition:all .3s ease}.music-rank-tab:hover{background-color:#323246cc;color:#e0e0e0;border-color:#6b66ff66}.music-rank-tab-active{background-color:#6b66ff33;color:#fff;border-color:#6b66ff99;box-shadow:0 4px 12px #6b66ff26}.music-rank-loading{display:flex;justify-content:center;align-items:center;height:100px}.music-rank-spinner{width:40px;height:40px;border:3px solid rgba(107,102,255,.3);border-top:3px solid #6B66FF;border-radius:50%;animation:music-rank-spin 1s linear infinite}@keyframes music-rank-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.music-rank-song-list{display:flex;flex-direction:column;gap:12px}.music-rank-song-card{display:flex;align-items:center;padding:16px 20px;background-color:#28283c99;border-radius:16px;box-shadow:0 4px 16px #00000026;cursor:pointer;transition:all .3s ease;position:relative;border:1px solid rgba(107,102,255,.05)}.music-rank-song-card:hover{background-color:#323246cc;transform:translateY(-2px);box-shadow:0 8px 24px #0003;border-color:#6b66ff33}.music-rank-play-button{cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:linear-gradient(135deg,#6b66ff,#5652cc);color:#fff;transition:all .3s ease;flex-shrink:0;margin-right:15px;padding:0;box-shadow:0 4px 12px #6b66ff4d}.music-rank-play-button:hover{transform:scale(1.1);box-shadow:0 6px 16px #6b66ff66}.music-rank-song-rank{width:40px;font-size:16px;color:#a0a0a0;margin-right:15px;flex-shrink:0;font-weight:600}.music-rank-song-rank-top{color:#d4af37;font-weight:700;font-size:18px}.music-rank-song-info{flex:1;text-align:left;overflow:hidden}.music-rank-song-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-rank-song-author{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;margin-top:4px}.music-rank-song-stats{display:flex;align-items:center;margin-right:15px;color:#a0a0a0;font-size:14px;gap:16px}.music-rank-stat{display:flex;align-items:center}.music-rank-stat-icon{width:16px;height:16px;flex-shrink:0;margin-right:6px}.music-rank-likes-icon{color:#ff6b6b}.music-rank-plays-icon{color:#6b66ff}.music-rank-song-score{font-size:18px;font-weight:700;background:linear-gradient(135deg,#d4af37,#f5e7aa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding:5px 10px;border-radius:8px;position:relative}.music-rank-song-score:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#d4af371a;border-radius:8px;z-index:-1}@media (max-width: 768px){.music-rank-header{flex-direction:column;align-items:center}.music-rank-qrcode{position:relative;right:auto;top:auto;margin-top:20px}.music-rank-song-card{padding:12px 16px}.music-rank-play-button{width:32px;height:32px;margin-right:10px}.music-rank-song-rank{width:30px;margin-right:10px}.music-rank-song-stats{gap:10px}}@media (max-width: 480px){.music-rank-song-stats{display:none}.music-rank-play-button{width:28px;height:28px}}.edit-profile-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-out}.edit-profile-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;padding:24px;position:relative;animation:slideUp .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.edit-profile-modal .close-button{position:absolute;top:16px;right:16px;background:none;border:none;font-size:24px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%;transition:background-color .2s}.edit-profile-modal .close-button:hover{background-color:#f0f0f0;color:#333}.edit-profile-modal h2{margin-top:0;margin-bottom:24px;color:#333;font-size:24px;text-align:center}.edit-profile-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid #eaeaea}.edit-profile-tabs .tab-button{flex:1;background:none;border:none;padding:12px 16px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#666;transition:all .2s;border-bottom:2px solid transparent}.edit-profile-tabs .tab-button svg{margin-right:8px;font-size:18px}.edit-profile-tabs .tab-button.active{color:#1db954;border-bottom-color:#1db954;font-weight:500}.edit-profile-tabs .tab-button:hover:not(.active){color:#333;background-color:#f9f9f9}.error-message,.success-message{padding:12px;border-radius:4px;margin-bottom:16px;font-size:14px}.error-message{background-color:#ffebee;color:#c62828;border:1px solid #ffcdd2}.success-message{background-color:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input[type=text],.form-group input[type=password]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .2s}.form-group input[type=text]:focus,.form-group input[type=password]:focus{border-color:#1db954;outline:none;box-shadow:0 0 0 2px #1db95433}.image-upload{display:flex;align-items:center}.image-upload .image-preview{width:100px;height:100px;border-radius:50%;overflow:hidden;background-color:#f0f0f0;display:flex;align-items:center;justify-content:center;margin-right:16px;border:1px solid #ddd}.image-upload.banner .image-preview{width:200px;height:80px;border-radius:8px}.image-upload .image-preview img{width:100%;height:100%;object-fit:cover}.image-upload .no-image{color:#aaa;font-size:32px;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-upload .upload-button{display:inline-flex;align-items:center;padding:8px 16px;background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s;color:#666;font-size:14px}.image-upload .upload-button:hover{background-color:#e0e0e0;color:#333}.image-upload .upload-button svg{margin-right:8px}.image-upload .upload-button input[type=file]{display:none}.form-actions{display:flex;justify-content:flex-end;margin-top:24px;gap:12px}.form-actions button{padding:10px 20px;border-radius:4px;font-size:16px;cursor:pointer;transition:all .2s}.form-actions .cancel-button{background-color:transparent;border:1px solid #ddd;color:#666}.form-actions .cancel-button:hover{background-color:#f0f0f0;color:#333}.form-actions .submit-button{background-color:#1db954;border:none;color:#fff}.form-actions .submit-button:hover{background-color:#18a449}.form-actions button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 600px){.edit-profile-modal{width:95%;padding:16px}.image-upload{flex-direction:column;align-items:flex-start}.image-upload .image-preview{margin-right:0;margin-bottom:12px}}.create-album-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.create-album-content{background-color:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026;overflow:hidden}.create-album-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}.create-album-header h2{margin:0;font-size:1.2rem;color:#333}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;padding:4px}.close-button:hover{color:#333}.create-album-body{padding:20px;overflow-y:auto;flex:1}.error-message{background-color:#fff2f2;color:#e53935;padding:10px;border-radius:4px;margin-bottom:16px;border-left:3px solid #e53935}.album-form .form-group{margin-bottom:16px}.album-form label{display:block;margin-bottom:6px;font-weight:500;color:#555}.album-form input[type=text],.album-form textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem}.album-form input[type=text]:focus,.album-form textarea:focus{border-color:#6b66ff;outline:none;box-shadow:0 0 0 2px #6b66ff1a}.search-section,.selected-songs-section,.cover-upload-section{margin-top:24px}.search-section h3,.selected-songs-section h3,.cover-upload-section h3{font-size:1rem;margin-bottom:12px;color:#333}.search-input-group{display:flex;margin-bottom:12px}.search-input-group input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px 0 0 6px;font-size:.95rem}.search-input-group input:focus{border-color:#6b66ff;outline:none;box-shadow:0 0 0 2px #6b66ff1a}.search-button{background-color:#6b66ff;color:#fff;border:none;border-radius:0 6px 6px 0;padding:0 16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.search-button:hover{background-color:#5a55e0}.search-button:disabled{background-color:#b4b2e0;cursor:not-allowed}.song-list,.selected-song-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto;border:1px solid #eee;border-radius:6px}.song-item,.selected-song-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #eee}.song-item:last-child,.selected-song-item:last-child{border-bottom:none}.song-info{display:flex;flex-direction:column;flex:1;overflow:hidden}.song-name-2{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-author{font-size:.85rem;color:#777;margin-top:2px}.add-song-button,.remove-song-button{background:none;border:none;color:#6b66ff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;margin-left:12px;font-size:1.2rem;width:36px;height:36px;border-radius:50%;background-color:#6b66ff1a;transition:all .2s ease}.add-song-button:hover{color:#5a55e0;background-color:#6b66ff33;transform:scale(1.1)}.add-song-button:disabled{color:#ccc;background-color:#0000000d;cursor:not-allowed;transform:none}.remove-song-button{color:#e53935;background-color:#e539351a}.remove-song-button:hover{color:#c62828;background-color:#e5393533;transform:scale(1.1)}.no-results,.no-selected-songs{padding:16px;text-align:center;color:#777;font-style:italic;background-color:#f9f9f9;border-radius:6px}.cover-upload-section{margin-bottom:16px}.cover-preview{display:flex;align-items:center;gap:16px}.cover-image{width:100px;height:100px;object-fit:cover;border-radius:8px;border:1px solid #eee}.cover-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:12px 16px;background-color:#f5f5f5;border-radius:6px;border:1px dashed #ddd;transition:all .2s}.cover-upload-label:hover{background-color:#eee;border-color:#ccc}.cover-upload-label svg{font-size:1.5rem;margin-bottom:8px;color:#6b66ff}.create-album-footer{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #eee;gap:12px}.cancel-button,.save-button{padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-button{background-color:#f5f5f5;border:1px solid #ddd;color:#555}.cancel-button:hover{background-color:#eee}.save-button:hover{background-color:#5a55e0}.save-button:disabled,.cancel-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 600px){.create-album-content{width:95%;max-height:95vh}.cover-preview{flex-direction:column;align-items:flex-start}.cover-image{width:120px;height:120px}.cover-upload-label{width:100%}}.edit-album-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;overflow-y:auto;padding:20px}.edit-album-modal{background-color:#1e1e2e;border-radius:12px;width:90%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 24px #0000004d;overflow:hidden}.edit-album-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #2d2d3d}.edit-album-header h2{margin:0;color:#fff;font-size:20px}.close-button{background:none;border:none;color:#99a;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-button:hover{color:#fff}.error-message{background-color:#ff636333;color:#ff6363;padding:10px 20px;margin:10px 20px;border-radius:6px;font-size:14px}.edit-album-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.album-info-section{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;color:#99a}.album-name-input,.album-description-input{background-color:#2d2d3d;border:1px solid #3d3d4d;border-radius:6px;padding:10px 15px;color:#fff;font-size:16px;transition:border-color .2s}.album-name-input:focus,.album-description-input:focus{border-color:#6b66ff;outline:none}.album-description-input{min-height:80px;resize:vertical}.album-content-section{display:grid;grid-template-columns:1fr 1fr;gap:20px}.search-section,.selected-songs-section{display:flex;flex-direction:column;gap:15px}.search-section h3,.selected-songs-section h3{margin:0;color:#fff;font-size:16px}.search-bar{display:flex;gap:10px}.search-input-wrapper{display:flex;flex:1;border-radius:6px;overflow:hidden;background-color:#2d2d3d;border:1px solid #3d3d4d}.search-input-wrapper input{flex:1;background:none;border:none;padding:10px 15px;color:#fff;font-size:14px}.search-input-wrapper input:focus{outline:none}.search-button{background-color:#6b66ff;border:none;color:#fff;padding:0 15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.search-button:hover{background-color:#5a55ee}.search-button:disabled{background-color:#4d4d5d;cursor:not-allowed}.search-results{max-height:300px;overflow-y:auto;background-color:#2d2d3d;border-radius:6px}.song-list{list-style:none;padding:0;margin:0}.song-item{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid #3d3d4d}.song-item:last-child{border-bottom:none}.song-info{display:flex;flex-direction:column;gap:4px;overflow:hidden}.song-name-2{color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-author{color:#99a;font-size:12px}.add-song-button,.remove-song-button,.move-song-button{background:none;border:none;color:#99a;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;padding:5px;transition:color .2s}.add-song-button:hover{color:#6b66ff}.remove-song-button:hover{color:#ff6363}.move-song-button:hover{color:#6b66ff}.add-song-button:disabled,.remove-song-button:disabled,.move-song-button:disabled{color:#4d4d5d;cursor:not-allowed}.song-actions{display:flex;gap:5px}.no-results,.no-selected-songs{padding:20px;text-align:center;color:#99a;font-size:14px}.selected-song-list{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto;background-color:#2d2d3d;border-radius:6px}.selected-song-item{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid #3d3d4d}.selected-song-item:last-child{border-bottom:none}.cover-upload-section{grid-column:1 / -1;display:flex;flex-direction:column;gap:15px}.cover-upload-section h3{margin:0;color:#fff;font-size:16px}.cover-preview{display:flex;gap:20px;align-items:center}.cover-image{width:120px;height:120px;object-fit:cover;border-radius:6px;background-color:#2d2d3d}.cover-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;padding:10px 20px;background-color:#2d2d3d;border-radius:6px;transition:background-color .2s}.cover-upload-label:hover{background-color:#3d3d4d}.cover-upload-label svg{font-size:24px;color:#6b66ff}.cover-upload-label span{font-size:14px;color:#fff}.cover-upload-input{display:none}.edit-album-footer{display:flex;justify-content:space-between;align-items:center;padding:20px;border-top:1px solid #2d2d3d}.right-buttons{display:flex;gap:10px}.cancel-button,.save-button,.delete-button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:transparent;border:1px solid #3d3d4d;color:#99a}.cancel-button:hover{background-color:#2d2d3d;color:#fff}.save-button{background-color:#6b66ff;border:none;color:#fff}.save-button:hover{background-color:#5a55ee}.delete-button{background-color:transparent;border:1px solid #ff6363;color:#ff6363}.delete-button:hover{background-color:#ff63631a}.cancel-button:disabled,.save-button:disabled,.delete-button:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:1100}.delete-confirm-content{background-color:#1e1e2e;border-radius:12px;width:90%;max-width:400px;padding:25px;box-shadow:0 8px 24px #0000004d}.delete-confirm-content h3{margin:0 0 15px;color:#ff6363;font-size:18px}.delete-confirm-content p{margin:0 0 20px;color:#fff;font-size:14px;line-height:1.5}.delete-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-button{background-color:#ff6363;border:none;color:#fff;padding:10px 20px;border-radius:6px;font-size:14px;cursor:pointer;transition:background-color .2s}.confirm-button:hover{background-color:#ff4f4f}@media (max-width: 768px){.album-content-section{grid-template-columns:1fr}.edit-album-modal{max-height:95vh}}.app-container .user-profile-header,.app-container .user-profile-tabs,.app-container .user-songs-section,.app-container .user-albums-section{background-color:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;overflow:hidden;margin-bottom:20px}.app-container.loading,.app-container.error,.user-profile-container.loading,.user-profile-container.error{min-height:400px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px;text-align:center}.loading-spinner{width:50px;height:50px;border:4px solid rgba(107,102,255,.2);border-radius:50%;border-top-color:var(--primary-color, #6B66FF);animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{width:60px;height:60px;border-radius:50%;background-color:#ff6b6b;color:#fff;display:flex;justify-content:center;align-items:center;font-size:36px;font-weight:700;margin-bottom:20px}.user-profile-container.error button{margin-top:20px;padding:10px 20px;background-color:var(--primary-color, #6B66FF);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s}.user-profile-container.error button:hover{background-color:#5550e6}.cancel-button,.confirm-button{padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-weight:500;transition:all .3s}.app-container .back-button{position:absolute;top:20px;left:20px;z-index:10;display:flex;align-items:center;padding:8px 16px;background-color:#ffffffe6;color:#333;border-radius:20px;text-decoration:none;font-weight:500;font-size:14px;box-shadow:0 2px 8px #0000001a;transition:all .2s}.back-button svg{margin-right:6px;font-size:18px}.back-button:hover{background-color:#fff;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.user-profile-header{position:relative;height:300px;background-size:cover;background-position:center;background-image:url(/banner.jpg);color:#fff;display:flex;align-items:flex-end}.user-profile-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0000001a,#000000b3);z-index:1}.user-profile-info{position:relative;z-index:2;display:flex;align-items:flex-end;padding:30px;width:100%}.user-avatar{width:120px;height:120px;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 4px 10px #0003;margin-right:20px;background-color:#f0f0f0}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-details{flex:1;position:relative}.user-details h1{margin:0 0 5px;font-size:32px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5),0 0 10px rgba(0,0,0,.5);color:#fff;letter-spacing:.5px}.user-since{margin:0;opacity:1;font-size:14px;text-shadow:0 1px 3px rgba(0,0,0,.5),0 0 8px rgba(0,0,0,.5);color:#fff;font-weight:500}.edit-profile-button{position:absolute;top:0;right:0;background-color:#fff3;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:20px;padding:6px 12px;font-size:14px;display:flex;align-items:center;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.3);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.edit-profile-button svg{margin-right:6px;font-size:16px}.edit-profile-button:hover{background-color:#ffffff4d;transform:translateY(-2px);box-shadow:0 2px 8px #0003}@media (max-width: 600px){.edit-profile-button{position:relative;margin-top:10px;align-self:flex-start;display:inline-flex}}.user-profile-tabs{display:flex;padding:0 20px;border-bottom:1px solid #eaeaea;background-color:#fff}.tab-button{display:flex;align-items:center;padding:16px 24px;background:none;border:none;border-bottom:3px solid transparent;color:#666;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.tab-button svg{margin-right:8px;font-size:20px}.tab-button.active{color:var(--primary-color, #6B66FF);border-bottom-color:var(--primary-color, #6B66FF)}.tab-button:hover:not(.active){color:#444;background-color:#f9f9f9}.count{margin-left:8px;background-color:#f0f0f0;color:#666;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600}.tab-button.active .count{background-color:var(--primary-color, #6B66FF);color:#fff}.user-songs-section,.user-albums-section{padding:30px}.empty-state{text-align:center;padding:60px 0;color:#888}.empty-icon{font-size:60px;margin-bottom:16px;opacity:.3}.songs-list{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000000d;margin-bottom:24px;width:100%;border-collapse:collapse;table-layout:auto}.song-list-item{border-bottom:1px solid #f0f0f0;transition:background-color .2s;cursor:pointer}.song-list-item:last-child{border-bottom:none}.song-list-item:hover{background-color:#6b66ff0d}.song-list-item td{padding:12px 8px;vertical-align:middle}.song-play-col{width:50px;text-align:center;vertical-align:middle}.profile-play-button{width:32px;height:32px;border-radius:50%;background-color:#6b66ffcc;color:#fff;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.profile-play-button:hover{background-color:#6b66ff;transform:scale(1.05)}.song-info-col{vertical-align:middle;text-align:left}.song-name-1{margin:0 0 5px;font-size:16px;font-weight:600;color:#333}.song-date{margin:0;font-size:12px;color:#888}.song-score-col{width:150px;text-align:right;vertical-align:middle;padding-right:10px}.song-score{font-weight:600;color:#6b66ff}.song-stats-col{width:100px;text-align:right;vertical-align:middle;padding-right:10px}.song-likes,.song-plays{display:inline-flex;align-items:center;margin-left:10px;font-size:14px;color:#666}.song-actions-col{width:90px;text-align:right;vertical-align:middle;padding-right:15px;display:flex;justify-content:flex-end;gap:8px}.delete-button{width:32px;height:32px;border-radius:50%;background-color:#ff3b301a;color:#ff3b30;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.delete-button svg{width:16px;height:16px;fill:currentColor}.delete-button:hover{background-color:#ff3b3033;transform:scale(1.05)}.edit-button{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .3s;color:#1890ff}.edit-button:hover{background-color:#1890ff1a}.delete-confirm-modal,.rename-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-content,.rename-content{background-color:#fff;padding:24px;border-radius:8px;width:400px;max-width:90%;box-shadow:0 4px 12px #00000026}.delete-confirm-content h3{margin-top:0;color:#ff3b30}.delete-confirm-actions,.rename-actions{display:flex;justify-content:flex-end;margin-top:24px;gap:12px}.cancel-button{padding:8px 16px;border:1px solid #ddd;background-color:#fff;border-radius:4px;cursor:pointer}.confirm-button{padding:8px 16px;border:none;background-color:#ff3b30;color:#fff;border-radius:4px;cursor:pointer}@media (max-width: 768px){.songs-list{display:block}.song-list-item{display:flex;flex-wrap:wrap;padding:10px;border-bottom:1px solid #eee}.song-play-col{width:40px}.song-info-col{flex:1;min-width:0}.song-score-col,.song-stats-col{margin-left:50px;padding-top:4px}}.songs-grid,.song-card,.song-card-cover,.song-card-info,.song-meta{display:none}.user-songs-section{padding:30px}.user-songs-section .songs-list{margin-bottom:24px}.user-songs-section .song-list-item{padding:16px}.user-songs-section .song-info-col{padding:0 16px}.user-songs-section .song-score-col{text-align:center}.user-songs-section .song-stats-col{justify-content:flex-end;gap:16px}.user-songs-section .song-likes,.user-songs-section .song-plays{display:flex;align-items:center;gap:4px;color:#666;font-size:14px}@media (max-width: 768px){.user-songs-section .song-list-item{flex-wrap:wrap}.user-songs-section .song-play-col{flex:0 0 40px}.user-songs-section .song-info-col{flex:1;padding:0 8px}.user-songs-section .song-score-col{flex:0 0 80px}.user-songs-section .song-stats-col{flex:0 0 100%;justify-content:flex-start;margin-top:8px;padding-left:56px}}.user-albums-section{padding:30px}.create-album-button{display:flex;align-items:center;justify-content:center;padding:10px 20px;background-color:#6b66ff;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;margin-bottom:24px;transition:background-color .2s,transform .2s}.create-album-button svg{margin-right:8px;font-size:18px}.create-album-button:hover{background-color:#5a55e0;transform:translateY(-2px)}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.album-card{background-color:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 12px #0000000d;transition:transform .2s,box-shadow .2s;cursor:pointer}.album-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #0000001a}.album-card-cover{position:relative;width:100%;padding-bottom:100%;overflow:hidden}.album-card-cover img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}.edit-album-button{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;background-color:#6b66ffd9;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;z-index:10;box-shadow:0 2px 8px #0000004d;opacity:1;visibility:visible;transform:scale(1);transition:transform .2s,background-color .2s,box-shadow .2s}.edit-album-button:hover{background-color:#6b66ff;transform:scale(1.1);box-shadow:0 4px 12px #0006}.edit-album-button:active{transform:scale(.95);box-shadow:0 1px 4px #0000004d}.album-card:hover .album-card-cover img{transform:scale(1.05)}.album-card-info{padding:12px}.album-name-1{margin:0 0 6px;font-size:16px;font-weight:600;color:#333}.album-description-1{margin:0 0 8px;font-size:12px;color:#666;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.album-meta-1{display:flex;justify-content:space-between;font-size:11px;color:#999}@media (max-width: 768px){.user-profile-header{height:220px}.user-avatar{width:90px;height:90px}.user-details h1{font-size:24px}.songs-grid,.albums-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.user-songs-section,.user-albums-section{padding:20px}}@media (max-width: 480px){.user-profile-header{height:180px}.user-avatar{width:70px;height:70px}.user-profile-info{padding:20px}.user-details h1{font-size:20px}.tab-button{padding:12px 16px;font-size:14px}.songs-grid,.albums-grid{grid-template-columns:1fr}}.ad-album-detail-container{min-height:100vh;width:100%;background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;color:#fff}.ad-album-detail-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#000c,#0009 40%,#000000b3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:20px}.ad-album-detail-content{max-width:1000px;width:100%;background:#14141eb3;border-radius:16px;box-shadow:0 8px 32px #0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);padding:30px;display:flex;flex-direction:column;gap:30px;overflow:hidden}.ad-album-detail-header{display:flex;gap:30px}.ad-album-detail-cover{flex:0 0 250px;height:250px;border-radius:12px;overflow:hidden;box-shadow:0 10px 20px #0000004d}.ad-album-detail-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.ad-album-detail-cover:hover img{transform:scale(1.05)}.ad-album-detail-info{flex:1;display:flex;flex-direction:column;justify-content:center}.ad-album-detail-title{font-size:32px;font-weight:700;margin:0 0 15px;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.ad-album-detail-description{font-size:16px;line-height:1.6;color:#fffc;margin:0 0 20px;max-height:100px;overflow-y:auto}.ad-album-detail-meta{display:flex;gap:20px;font-size:14px;color:#fff9}.ad-album-detail-songs-list{background:#0003;border-radius:12px;padding:20px}.ad-album-detail-songs-list h2{font-size:20px;margin:0 0 15px;color:#ffffffe6}.ad-no-songs{text-align:center;color:#fff9;padding:20px}.ad-album-detail-songs-list ul{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto}.ad-album-detail-song-item{display:flex;align-items:center;padding:10px 15px;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.05)}.ad-album-detail-song-item:last-child{border-bottom:none}.ad-album-detail-song-item:hover{background:#ffffff1a}.ad-album-detail-song-item.active{background:#6b66ff4d}.ad-album-detail-song-number{flex:0 0 30px;font-size:14px;color:#fff9}.ad-album-detail-song-info{flex:1;display:flex;flex-direction:column}.ad-album-detail-song-name{font-size:16px;font-weight:500;color:#fff}.ad-album-detail-song-artist{font-size:14px;color:#fff9}.ad-album-detail-song-stats{display:flex;align-items:center;gap:15px;margin-left:auto}.ad-album-detail-song-likes,.ad-album-detail-song-plays{display:flex;align-items:center;font-size:14px;color:#fff9;transition:all .2s;cursor:pointer}.ad-album-detail-song-likes:hover{color:#ff6b6b;transform:scale(1.05)}.ad-album-detail-song-plays:hover{color:#ffffffe6}.ad-album-detail-song-likes.liked{color:#ff6b6b}.ad-album-detail-song-likes.liked:hover{color:#ff4f4f}.ad-album-detail-player-container{position:relative;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;margin-top:20px;display:flex;flex-direction:column;gap:20px}.ad-album-detail-player-controls{display:flex;align-items:center;justify-content:center;gap:30px;margin:10px 0}.ad-album-detail-control-button{background:#ffffff1a;border:none;color:#fff;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:20px}.ad-album-detail-control-button:hover{background:#fff3;transform:scale(1.1)}.ad-album-detail-control-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.ad-album-detail-play-button{background:#6b66ff;border:none;color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:28px}.ad-album-detail-play-button:hover{background:#5a55e0;transform:scale(1.1)}.ad-album-detail-play-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.ad-album-detail-player-progress{display:flex;align-items:center;gap:10px}.ad-album-detail-time-current,.ad-album-detail-time-total{font-size:12px;color:#ffffffb3;width:40px}.ad-album-detail-time-total{text-align:right}.ad-album-detail-progress-bar{height:6px;background:#fff3;border-radius:3px;flex-grow:1;cursor:pointer;position:relative;overflow:hidden;margin:0 10px}.ad-album-detail-progress-filled{height:100%;background:#6b66ff;border-radius:3px;position:absolute;top:0;left:0;transition:width .1s ease}.ad-album-detail-progress-bar:hover .ad-album-detail-progress-filled{background:#8580ff}.ad-album-detail-volume-control{display:flex;align-items:center;gap:10px;margin-left:auto;margin-right:10px}.ad-album-detail-volume-button{background:transparent;border:none;color:#fff;cursor:pointer;transition:all .2s}.ad-album-detail-volume-button:hover{color:#6b66ff}.ad-album-detail-volume-slider{flex:0 0 100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none}.ad-album-detail-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#6b66ff;cursor:pointer;transition:all .2s}.ad-album-detail-volume-slider::-webkit-slider-thumb:hover{background:#8580ff;transform:scale(1.2)}.ad-album-detail-loading,.ad-album-detail-error{display:flex;align-items:center;justify-content:center;height:100vh;width:100%;font-size:18px;color:#6b66ff;background:#f5f5f5}@media (max-width: 768px){.ad-album-detail-header{flex-direction:column;align-items:center;text-align:center}.ad-album-detail-cover{flex:0 0 200px;height:200px}.ad-album-detail-title{font-size:24px}.ad-album-detail-meta{justify-content:center}.ad-album-detail-songs-list ul{max-height:200px}}.ad-album-detail-songs-list ul::-webkit-scrollbar,.ad-album-detail-description::-webkit-scrollbar{width:6px}.ad-album-detail-songs-list ul::-webkit-scrollbar-track,.ad-album-detail-description::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.ad-album-detail-songs-list ul::-webkit-scrollbar-thumb,.ad-album-detail-description::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.ad-album-detail-songs-list ul::-webkit-scrollbar-thumb:hover,.ad-album-detail-description::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.ad-album-detail-container~.bottom-player{display:none!important}.competition-container{max-width:800px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.competition-header{text-align:center;margin-bottom:40px;padding:40px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;box-shadow:0 10px 30px #0000001a}.competition-header h1{font-size:2.8rem;margin-bottom:15px;font-weight:800;color:#fff;text-shadow:0 3px 6px rgba(0,0,0,.4);letter-spacing:1px;background:linear-gradient(45deg,#fff,#f0f9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.competition-header p{font-size:1.2rem;opacity:.9;margin-bottom:20px}.stats-bar{display:flex;justify-content:center;gap:30px;font-size:1rem;opacity:.8}.competition-content{display:flex;flex-direction:column;gap:30px}.upload-section,.result-section{background:#fff;border-radius:20px;padding:40px;box-shadow:0 5px 20px #00000014}.upload-section h2,.result-section h2{margin-bottom:30px;color:#333;font-size:1.8rem;text-align:center}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#555;font-size:1.1rem}.form-input,.form-textarea{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:10px;font-size:1rem;transition:all .3s ease;box-sizing:border-box}.form-input:focus,.form-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-textarea{resize:vertical;min-height:120px;font-family:inherit}.file-upload-area{border:2px dashed #d1d5db;border-radius:15px;padding:40px;text-align:center;transition:all .3s ease;cursor:pointer;position:relative;background:#fafbfc}.file-upload-area:hover{border-color:#667eea;background:#f8faff}.file-upload-area.has-file{border-color:#10b981;background:#f0fdf4}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-placeholder,.file-info{display:flex;flex-direction:column;align-items:center;gap:10px}.upload-icon,.file-icon{font-size:3rem;margin-bottom:10px}.upload-hint,.file-size{font-size:.9rem;color:#666}.button-group{display:flex;gap:15px;justify-content:center;margin-top:30px;align-items:baseline}.analyze-button,.clear-button{padding:0 30px;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;height:52px;display:flex;align-items:center;justify-content:center;white-space:nowrap}.copy-button{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease}.analyze-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:160px}.analyze-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.analyze-button:disabled{opacity:.6;cursor:not-allowed}.clear-button{background:#f3f4f6;color:#374151;border:2px solid #e5e7eb;width:160px}.clear-button:hover{background:#e5e7eb}.loading-spinner{width:20px;height:20px;border:2px solid #ffffff;border-top:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite;margin-right:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.result-section{margin-top:30px}.result-header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e5e7eb}.result-header h3{margin:0 0 10px;font-size:1.5rem;color:#333}.overall-score{font-size:1.3rem;color:#667eea}.score-number{font-size:2rem;font-weight:700;color:#667eea}.rating-details{display:flex;flex-direction:column;gap:25px}.rating-item{background:#f9fafb;padding:20px;border-radius:15px;border-left:4px solid #667eea}.rating-item h4{margin:0 0 15px;color:#333;font-size:1.2rem}.score-bar{display:flex;align-items:center;gap:15px;margin-bottom:10px}.score{font-weight:700;color:#667eea;min-width:50px}.progress-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.rating-item p{margin:0;color:#555;line-height:1.6}.summary-section{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);padding:25px;border-radius:15px;margin-top:20px}.overall-score{text-align:center;margin:30px 0;padding:40px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;box-shadow:0 10px 30px #667eea4d}.overall-score-value{font-size:4rem;font-weight:800;line-height:1;margin-bottom:10px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.overall-score-label{font-size:1.2rem;opacity:.9;font-weight:500}.score-excellent{background:linear-gradient(135deg,#10b981,#059669)}.score-good{background:linear-gradient(135deg,#f59e0b,#d97706)}.score-average{background:linear-gradient(135deg,#ef4444,#dc2626)}.summary-section h4{margin:0 0 15px;color:#333;font-size:1.2rem}.summary-text,.advice-text{margin:15px 0;line-height:1.8;color:#444}.copy-section{text-align:center;margin-top:30px}.copy-button{background:#10b981;color:#fff;padding:12px 24px;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease}.copy-button:hover{background:#059669;transform:translateY(-1px)}@media (max-width: 768px){.competition-container{padding:15px}.competition-header{padding:30px 15px}.competition-header h1{font-size:2rem}.upload-section,.result-section{padding:25px}.button-group{flex-direction:column}.stats-bar{flex-direction:column;gap:10px}}
