:root{--primary-color: #2563eb;--secondary-color: #64748b;--accent-color: #f1f5f9;--border-color: #e2e8f0;--text-color: #1e293b;--text-muted: #64748b;--success-color: #059669;--danger-color: #dc2626;--pdf-font-size: 12px;--pdf-margin-mm: 15mm;--pdf-line-height: 1.4}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:var(--text-color);background-color:#f8fafc}#app{min-height:100vh;display:flex;flex-direction:column}header{background:#fff;padding:1rem 2rem;border-bottom:1px solid var(--border-color);box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;align-items:center}header h1{color:var(--primary-color);font-size:1.75rem;font-weight:600}.header-actions{display:flex;gap:.75rem}.btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:var(--accent-color);color:var(--text-color);border:1px solid var(--border-color)}.btn-secondary:hover{background:#e2e8f0}.main-container{display:flex;flex:1;height:calc(100vh - 80px)}.sidebar{width:400px;background:#fff;border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.filters{padding:1.5rem;border-bottom:1px solid var(--border-color);background:var(--accent-color)}.filters h3{margin-bottom:1rem;color:var(--text-color);font-size:1.125rem}.filter-group{margin-bottom:1rem}.filter-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.filter-group input,.filter-group select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem}.range-wrap{display:flex;gap:.5rem;align-items:center}.range-wrap.small{width:120px}.quality-control{display:inline-flex;align-items:center;gap:.5rem;margin-left:.75rem;color:var(--text-muted)}.range-wrap input[type=range]{flex:1}.range-value{min-width:48px;text-align:right;font-weight:600;color:var(--text-muted)}.selected-order-list{max-height:180px;overflow-y:auto;background:#fff;border:1px solid var(--border-color);border-radius:6px;padding:.5rem}.cover-controls{display:flex;gap:.5rem;align-items:flex-start}.cover-fields{flex:1 1 auto;display:flex;flex-direction:column;gap:.5rem}.cover-fields input,.cover-fields textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:6px}.cover-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.cover-preview .cover-title{font-size:1.6rem;font-weight:800;color:var(--primary-color);margin-bottom:.25rem;text-align:center}.cover-preview .cover-author{font-size:1rem;color:var(--text-muted);margin-bottom:.5rem;text-align:center}.cover-preview .cover-text{font-size:.95rem;text-align:center}.cover-preview{margin-top:.5rem;width:100%;height:120px;border:1px dashed var(--border-color);border-radius:6px;background-size:cover;background-position:center}.cover-controls textarea{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;resize:vertical}.cover-preview .cover-text{display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;height:100%;font-size:.95rem;color:var(--text-color)}.pdf-page.cover-page{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.pdf-page.cover-page .cover-title{font-size:calc(var(--pdf-font-size) * 2.2);font-weight:800;color:var(--primary-color);margin-bottom:8px}.pdf-page.cover-page .cover-author{font-size:calc(var(--pdf-font-size) * 1.05);color:var(--text-muted);margin-bottom:12px}.pdf-page.cover-page .pdf-cover-text{font-size:var(--pdf-font-size);color:var(--text-color);max-width:calc(100% - (var(--pdf-margin-mm) * 2));line-height:var(--pdf-line-height)}.page-number-toggle{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.selected-order-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:4px;cursor:grab}.selected-order-item.dragging{opacity:.6}.drag-handle{width:16px;height:16px;background:var(--border-color);border-radius:3px;display:inline-block}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.selection-info{margin-top:1rem;padding:.75rem;background:#fff;border-radius:6px;border:1px solid var(--border-color);text-align:center;font-weight:500;color:var(--primary-color)}.song-list-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.song-list-container h3{padding:1rem 1.5rem .5rem;color:var(--text-color);font-size:1.125rem}.song-list{flex:1;overflow-y:auto;padding:0 1.5rem 1.5rem}.song-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;margin-bottom:.5rem;background:#fff;cursor:pointer;transition:all .2s}.song-item:hover{border-color:var(--primary-color);box-shadow:0 2px 4px #0000001a}.song-item.selected{border-color:var(--primary-color);background:#eff6ff}.song-checkbox{margin-top:.125rem}.song-info{flex:1}.song-title{font-weight:600;color:var(--text-color);margin-bottom:.25rem}.song-meta{font-size:.875rem;color:var(--text-muted)}.song-artist{font-weight:500}.song-genre{margin-left:.5rem;opacity:.8}.preview-area{flex:1;background:#fff;display:flex;flex-direction:column;overflow:hidden}.preview-header{padding:1.5rem;border-bottom:1px solid var(--border-color);background:var(--accent-color);display:flex;justify-content:space-between;align-items:center}.preview-header h3{color:var(--text-color);font-size:1.125rem}.preview-actions{display:flex;align-items:center;gap:.5rem}.preview-actions label{font-weight:500;color:var(--text-color)}.preview-actions .hint{color:var(--text-muted);font-size:.95rem}.fast-export{display:inline-flex;align-items:center;gap:.25rem;margin-left:1rem;font-size:.9rem;color:var(--text-muted)}.progress-container{width:calc(100% - 4rem);margin:0 auto 1rem;padding:.25rem;background:#fff;border-radius:6px;border:1px solid var(--border-color)}.progress-bar{height:10px;background:linear-gradient(90deg,var(--primary-color),#60a5fa);width:0%;border-radius:6px;transition:width .2s linear}.progress-track{flex:1;height:10px;background:#f1f5f9;border-radius:6px;overflow:hidden}.progress-text{margin-top:6px;font-size:.9rem;color:var(--text-muted)}.progress-top{display:flex;align-items:center;gap:.75rem}.progress-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(0,0,0,.08);border-top-color:var(--primary-color);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn.small{padding:.25rem .5rem;font-size:.8rem}.progress-eta{font-size:.9rem;color:var(--text-muted)}.preview-actions select{padding:.375rem .5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem}.pdf-preview{flex:1;overflow-y:auto;padding:2rem;background:#f8fafc}.preview-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:1.125rem}.pdf-page{background:#fff;margin:0 auto 2rem;padding:calc(var(--pdf-margin-mm) * 1);box-shadow:0 4px 6px #0000001a;border-radius:8px;max-width:8.5in;min-height:11in;page-break-after:always;position:relative}.pdf-page{width:100%;box-sizing:border-box}.pdf-song{margin-bottom:2rem;page-break-inside:avoid}.pdf-song:last-child{margin-bottom:0}.pdf-song-title{font-size:calc(var(--pdf-font-size) * 1.5);font-weight:700;color:var(--primary-color);margin-bottom:.5rem;border-bottom:2px solid var(--primary-color);padding-bottom:.25rem}.pdf-song-meta{font-size:.875rem;color:var(--text-muted);margin-bottom:1rem}.pdf-song-artist{font-weight:600}.pdf-song-genre{margin-left:1rem}.pdf-song-lyrics{font-size:var(--pdf-font-size);line-height:var(--pdf-line-height);white-space:pre-line;color:var(--text-color)}.pdf-index{padding:calc(var(--pdf-margin-mm) * 1);margin:0 auto;width:100%;min-height:11in}.pdf-index h2{font-size:calc(var(--pdf-font-size) * 1.6);margin-bottom:1rem;color:var(--primary-color);text-align:left;padding-left:4mm}.index-list{list-style:none;margin:0;padding:0 4mm}.index-item{display:flex;justify-content:space-between;padding:.5rem .25rem;border-bottom:1px dashed var(--border-color);align-items:center}.index-title{flex:1 1 auto;padding-right:1rem}.index-page{width:4rem;text-align:right;color:var(--text-muted);flex:0 0 4rem}.page-number{position:absolute;right:calc(var(--pdf-margin-mm) - 3mm);bottom:calc(var(--pdf-margin-mm) / 2);font-size:.85rem;color:#1e293bbf;z-index:30;background:transparent;padding:.08rem .25rem;border-radius:4px;pointer-events:none}.pdf-page-wrapper{position:relative;overflow:visible;max-width:8.5in;min-height:11in;margin:0 auto 2rem;display:flex;align-items:stretch;justify-content:center}.song-list::-webkit-scrollbar,.pdf-preview::-webkit-scrollbar{width:6px}.song-list::-webkit-scrollbar-track,.pdf-preview::-webkit-scrollbar-track{background:#f1f5f9}.song-list::-webkit-scrollbar-thumb,.pdf-preview::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.song-list::-webkit-scrollbar-thumb:hover,.pdf-preview::-webkit-scrollbar-thumb:hover{background:var(--secondary-color)}@media (max-width: 768px){.main-container{flex-direction:column}.sidebar{width:100%;height:50vh}.preview-area{height:50vh}header{padding:1rem}.header-actions{flex-direction:column;gap:.5rem}}@media print{body{background:#fff}.pdf-page{box-shadow:none;margin:0;page-break-after:always}}
