:root{--bg-primary: #faf9f7;--bg-secondary: #f5f4f1;--bg-tertiary: #ffffff;--text-primary: #2c2c2c;--text-secondary: #666666;--text-muted: #999999;--accent-primary: #3E7C59;--accent-secondary: #4A9668;--border-light: #e8e5e0;--shadow-light: rgba(0, 0, 0, .05);--shadow-medium: rgba(0, 0, 0, .1)}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-tertiary: #2a2a2a;--text-primary: #ffffff;--text-secondary: #cccccc;--text-muted: #888888;--accent-primary: #3E7C59;--accent-secondary: #4A9668;--border-light: #404040;--shadow-light: rgba(0, 0, 0, .2);--shadow-medium: rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans Mono,monospace;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:14px;font-weight:400;transition:background-color .3s ease,color .3s ease}.app,.page{min-height:100vh;display:flex;flex-direction:column}.theme-toggle{position:fixed;top:24px;right:24px;z-index:100;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:6px;padding:8px;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.login-container{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-content{text-align:center;max-width:400px;width:100%}.login-title{font-size:48px;font-weight:500;margin-bottom:12px;color:var(--text-primary)}.login-subtitle{font-size:16px;color:var(--text-secondary);margin-bottom:40px;font-weight:300}.spotify-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px 24px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-family:Noto Sans Mono,monospace;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease;margin-bottom:16px}.spotify-btn:hover{background:var(--accent-secondary)}.login-disclaimer{font-size:12px;color:var(--text-muted);line-height:1.4}.header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-light);background:var(--bg-primary)}.logo{font-size:24px;font-weight:500;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:12px}.icon-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;padding:8px;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.user-menu{position:relative}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-primary);color:#fff;border:none;cursor:pointer;font-family:Noto Sans Mono,monospace;font-weight:500;font-size:12px;display:flex;align-items:center;justify-content:center}.user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:6px;padding:8px;box-shadow:0 4px 12px var(--shadow-medium);z-index:10;min-width:120px}.user-info{padding:8px 12px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-light);margin-bottom:4px}.dropdown-item{width:100%;padding:8px 12px;background:none;border:none;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:12px;cursor:pointer;border-radius:4px;transition:background .2s ease;text-align:left}.dropdown-item:hover{background:var(--bg-secondary)}.back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:14px;cursor:pointer;transition:color .2s ease}.back-btn:hover{color:var(--accent-primary)}.main{flex:1;padding:40px 24px;max-width:600px;margin:0 auto;width:100%}.hero{text-align:center;margin-bottom:40px}.hero-title{font-size:32px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.hero-subtitle{font-size:16px;color:var(--text-secondary);font-weight:300}.playlist-form{display:flex;flex-direction:column;gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-row{display:grid;grid-template-columns:1fr;gap:24px}.label{font-size:12px;color:var(--text-secondary);font-weight:500}.prompt-input{width:100%;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;color:var(--text-primary);font-family:Noto Sans Mono,monospace;font-size:14px;resize:vertical;min-height:80px;transition:border-color .2s ease}.prompt-input:focus{outline:none;border-color:var(--accent-primary)}.prompt-input::placeholder{color:var(--text-muted)}.range-input{width:100%;height:6px;background:var(--bg-secondary);border-radius:3px;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.range-input::-webkit-slider-track{-webkit-appearance:none;height:6px;background:var(--bg-secondary);border-radius:3px}.range-input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent-primary);border-radius:50%;cursor:pointer;border:none}.range-input::-moz-range-track{height:6px;background:var(--bg-secondary);border-radius:3px;border:none}.range-input::-moz-range-thumb{width:16px;height:16px;background:var(--accent-primary);border-radius:50%;cursor:pointer;border:none;-moz-appearance:none}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted)}.advanced-toggle{background:none;border:none;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:12px;cursor:pointer;padding:8px 0;text-align:left;transition:color .2s ease}.advanced-toggle:hover{color:var(--accent-primary)}.advanced-options{padding:20px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;display:flex;flex-direction:column;gap:20px}.toggle-group{display:flex;gap:8px}.toggle-btn{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:12px;cursor:pointer;transition:all .2s ease}.toggle-btn.active,.toggle-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.generate-btn{padding:16px 24px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-family:Noto Sans Mono,monospace;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease}.generate-btn:hover:not(:disabled){background:var(--accent-secondary)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.loading-page{align-items:center;justify-content:center}.loading-content{text-align:center;max-width:400px;width:100%;padding:40px 24px}.loading-spinner{display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--accent-primary);animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-title{font-size:24px;font-weight:500;margin-bottom:8px;color:var(--text-primary)}.loading-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:32px}.progress-bar{width:100%;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;background:var(--accent-primary);transition:width .3s ease}.progress-text{font-size:12px;color:var(--text-muted)}.playlist-main{max-width:800px}.playlist-header{margin-bottom:32px}.playlist-name-input{font-size:28px;font-weight:500;background:none;border:none;color:var(--text-primary);font-family:Noto Sans Mono,monospace;width:100%;margin-bottom:8px;padding:4px 0;border-bottom:2px solid transparent;transition:border-color .2s ease}.playlist-name-input:focus{outline:none;border-bottom-color:var(--accent-primary)}.playlist-info{font-size:14px;color:var(--text-secondary)}.playlist-tracks{display:flex;flex-direction:column;gap:1px;margin-bottom:32px;background:var(--border-light);border-radius:6px;overflow:hidden}.track-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-tertiary);transition:background .2s ease}.track-number{font-size:12px;color:var(--text-muted);width:24px;text-align:center}.track-action{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;transition:color .2s ease;display:flex;align-items:center;justify-content:center}.export-section{text-align:center}.export-btn{padding:16px 32px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-family:Noto Sans Mono,monospace;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease}.export-btn:hover:not(:disabled){background:var(--accent-secondary)}.export-btn:disabled{opacity:.5;cursor:not-allowed}.hidden{display:none}@media (max-width: 768px){.header{padding:16px}.main{padding:24px 16px}.hero-title{font-size:24px}.hero-subtitle{font-size:14px}.login-title{font-size:36px}.playlist-name-input{font-size:24px}.track-item{padding:12px;gap:12px}.form-row{grid-template-columns:1fr}}@media (max-width: 480px){.theme-toggle{top:16px;right:16px;padding:6px}.header{padding:12px 16px}.header-actions{gap:8px}.main{padding:20px 16px}.hero-title{font-size:20px}.login-container{padding:20px 16px}.spotify-btn{padding:14px 20px}}.track-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-tertiary);transition:background .2s ease}.track-item:hover{background:var(--bg-secondary)}.track-number{font-size:12px;color:var(--text-muted);width:24px;text-align:center;flex-shrink:0}.track-cover{width:48px;height:48px;flex-shrink:0}.album-cover{width:48px;height:48px;border-radius:4px;object-fit:cover;background:var(--bg-secondary)}.album-cover-placeholder{width:48px;height:48px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.track-info{flex:1;min-width:0}.track-title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-action{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;transition:color .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.track-action:hover{color:var(--accent-primary)}.range-input{width:100%;height:6px;background:var(--border-light);border-radius:3px;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.range-input::-webkit-slider-track{width:100%;height:6px;background:var(--border-light);border-radius:3px}.range-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--accent-primary);border-radius:50%;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.range-input::-webkit-slider-thumb:hover{background:var(--accent-secondary);transform:scale(1.1);transition:all .2s ease}.range-input::-moz-range-track{width:100%;height:6px;background:var(--border-light);border-radius:3px;border:none}.range-input::-moz-range-thumb{width:18px;height:18px;background:var(--accent-primary);border-radius:50%;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.range-input::-moz-range-thumb:hover{background:var(--accent-secondary);transform:scale(1.1)}@media (max-width: 768px){.image-upload-area{padding:24px 16px}.preview-image{width:100px;height:100px}.upload-content{gap:6px}.upload-content svg{width:20px;height:20px}}@media (max-width: 480px){.image-upload-area{padding:20px 12px}.preview-image{width:80px;height:80px}}.image-upload-container{margin-bottom:24px}.image-upload-area{border:2px dashed var(--border-light);border-radius:8px;padding:32px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--bg-secondary)}.image-upload-area:hover:not(.disabled){border-color:var(--accent-primary);background:var(--bg-tertiary)}.image-upload-area.processing{border-color:var(--accent-primary);background:var(--bg-tertiary);cursor:default}.image-upload-area.disabled{opacity:.5;cursor:not-allowed}.upload-content{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary)}.upload-content svg{color:var(--text-muted)}.image-upload-area:hover:not(.disabled) .upload-content svg{color:var(--accent-primary)}.upload-primary{color:var(--accent-primary);font-weight:500}.upload-secondary{font-size:12px;color:var(--text-muted)}.processing-spinner{color:var(--accent-primary);animation:spin 2s linear infinite}.image-preview-container{display:flex;flex-direction:column;align-items:center;gap:12px}.image-preview{position:relative;display:inline-block;border-radius:8px;overflow:hidden;border:2px solid var(--border-light)}.preview-image{width:120px;height:120px;object-fit:cover;display:block}.remove-image-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:#000c;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.remove-image-btn:hover{background:var(--accent-primary);transform:scale(1.1)}.image-info{font-size:12px;color:var(--text-secondary);text-align:center;margin:0}.image-error{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;font-size:12px;margin-top:8px}[data-theme=dark] .image-error{background:#1f1f1f;border-color:#dc2626;color:#fca5a5}.playlist-cover-preview{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;padding:20px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px}.playlist-cover-image{width:120px;height:120px;object-fit:cover;border-radius:8px;border:2px solid var(--border-light)}.cover-info{font-size:12px;color:var(--text-secondary);text-align:center;margin:0}@media (max-width: 768px){.image-upload-area{padding:24px 16px}.preview-image,.playlist-cover-image{width:100px;height:100px}.upload-content{gap:6px}.upload-content svg{width:20px;height:20px}.playlist-cover-preview{padding:16px}}@media (max-width: 480px){.image-upload-area{padding:20px 12px}.preview-image,.playlist-cover-image{width:80px;height:80px}.playlist-cover-preview{padding:12px}}.compact-image-upload{position:relative}.image-toggle-btn{position:absolute;bottom:12px;right:12px;width:32px;height:32px;border-radius:6px;background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:2}.image-toggle-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);transform:scale(1.05)}.image-toggle-btn.active,.image-toggle-btn.uploading{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.image-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.processing-icon{animation:spin 1s linear infinite}.compact-upload-area{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:8px;padding:16px;box-shadow:0 4px 12px var(--shadow-medium);z-index:100;min-width:200px}.upload-options{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.upload-option-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:12px;cursor:pointer;transition:all .2s ease}.upload-option-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.upload-option-btn:disabled{opacity:.5;cursor:not-allowed}.compact-upload-hint{font-size:10px;color:var(--text-muted);text-align:center;margin:0}.compact-image-preview{position:absolute;top:100%;right:0;margin-top:8px;z-index:100}.preview-container{position:relative;border-radius:8px;overflow:hidden;border:2px solid var(--accent-primary)}.compact-preview-image{width:80px;height:80px;object-fit:cover;display:block}.preview-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000c);color:#fff;padding:4px 6px;font-size:10px;text-align:center}.compact-image-error{position:absolute;top:100%;right:0;margin-top:8px;display:flex;align-items:center;gap:6px;padding:6px 8px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;font-size:10px;z-index:100;max-width:250px}[data-theme=dark] .compact-image-error{background:#1f1f1f;border-color:#dc2626;color:#fca5a5}.prompt-input-wrapper{position:relative;display:flex;flex-direction:column}.prompt-input.with-image-btn{padding-right:56px}.form-row.with-image-spacing{margin-top:100px}.playlist-cover-indicator{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--accent-primary);border-radius:6px;margin-bottom:16px}.cover-indicator-image{width:40px;height:40px;object-fit:cover;border-radius:4px;border:1px solid var(--border-light)}.cover-indicator-text{font-size:12px;color:var(--text-secondary);flex:1}@media (max-width: 768px){.image-toggle-btn{width:28px;height:28px;bottom:10px;right:10px}.compact-upload-area{min-width:180px;padding:12px}.compact-preview-image{width:70px;height:70px}.prompt-input.with-image-btn{padding-right:48px}.playlist-cover-indicator{padding:10px 12px}.cover-indicator-image{width:32px;height:32px}}@media (max-width: 480px){.image-toggle-btn{width:24px;height:24px;bottom:8px;right:8px}.compact-upload-area{min-width:160px;padding:10px;right:-20px}.compact-preview-image{width:60px;height:60px}.prompt-input.with-image-btn{padding-right:40px}.playlist-cover-indicator{padding:8px 10px;gap:8px}.cover-indicator-image{width:28px;height:28px}}.login-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.login-divider{text-align:center;font-size:12px;color:var(--text-muted);margin:4px 0;position:relative}.login-divider:before,.login-divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:var(--border-light)}.login-divider:before{left:0}.login-divider:after{right:0}.guest-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px 24px;background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-light);border-radius:6px;font-family:Noto Sans Mono,monospace;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.guest-btn:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.user-avatar.guest-avatar{background:var(--text-muted);color:var(--bg-primary)}.universal-export{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;padding:24px;margin-top:32px}.export-title{font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:16px}.export-actions{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.export-action-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;font-family:Noto Sans Mono,monospace;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s ease}.export-action-btn:hover{background:var(--accent-secondary)}.platform-section{margin-bottom:20px}.platform-title{font-size:14px;color:var(--text-secondary);margin-bottom:12px;font-weight:500}.platform-grid{display:flex;flex-direction:column;gap:8px}.song-platforms{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px}.song-info{display:flex;flex-direction:column;flex:1;min-width:0}.song-title{font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-artist{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-links{display:flex;gap:4px;flex-shrink:0}.platform-btn{width:28px;height:28px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.platform-btn:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.platform-btn.spotify{background:#1db954;color:#fff}.platform-btn.apple{background:#000;color:#fff}[data-theme=dark] .platform-btn.apple{background:#fff;color:#000}.platform-btn.youtube{background:red;color:#fff}.more-songs{text-align:center;padding:8px;font-size:11px;color:var(--text-muted)}.advanced-export{margin-top:16px}.advanced-export summary{font-size:12px;color:var(--text-secondary);cursor:pointer;margin-bottom:12px}.format-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:8px}.format-btn{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;color:var(--text-secondary);font-family:Noto Sans Mono,monospace;font-size:11px;cursor:pointer;transition:all .2s ease}.format-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}@media (max-width: 768px){.login-benefits{grid-template-columns:1fr;gap:16px}.export-actions{flex-direction:column}.export-action-btn{justify-content:center}.song-platforms{flex-direction:column;align-items:flex-start;gap:8px}.platform-links{align-self:flex-end}.format-options{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.universal-export{padding:16px}.format-options{grid-template-columns:1fr}}
