*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:#333;background-color:#f5f5f5;overflow-x:hidden}#app{min-height:100vh}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}input,select,button{font-size:14px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.canvas-container[data-v-133ae313]{position:relative;width:100%;height:500px;background-color:#0f172a;border-radius:8px;overflow:hidden;border:1px solid #334155}canvas[data-v-133ae313]{display:block;width:100%;height:100%;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated;image-rendering:crisp-edges}.loading-overlay[data-v-133ae313]{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#0f172acc;color:#fff;font-size:18px;gap:16px}.loading-spinner[data-v-133ae313]{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#3b82f6;border-radius:50%;animation:spin-133ae313 1s linear infinite}@keyframes spin-133ae313{to{transform:rotate(360deg)}}.control-panel[data-v-b6b2903f]{display:flex;flex-direction:column;gap:24px;background:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e5e7eb;height:fit-content}.panel-section[data-v-b6b2903f]{display:flex;flex-direction:column;gap:16px}.panel-section h3[data-v-b6b2903f]{margin:0;font-size:18px;font-weight:600;color:#1f2937;border-bottom:2px solid #3b82f6;padding-bottom:8px}.control-group[data-v-b6b2903f]{display:flex;flex-direction:column;gap:8px}.control-group label[data-v-b6b2903f]{font-weight:500;color:#4b5563}input[type=range][data-v-b6b2903f]{width:100%;height:6px;background:#e5e7eb;border-radius:3px;outline:none}input[type=range][data-v-b6b2903f]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:background .2s}input[type=range][data-v-b6b2903f]::-webkit-slider-thumb:hover{background:#2563eb}input[type=range][data-v-b6b2903f]:disabled{opacity:.5;cursor:not-allowed}input[type=range][data-v-b6b2903f]:disabled::-webkit-slider-thumb{background:#94a3b8;cursor:not-allowed}.range-labels[data-v-b6b2903f]{display:flex;justify-content:space-between;font-size:12px;color:#6b7280;margin-top:4px}select[data-v-b6b2903f]{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:14px;color:#374151;outline:none;transition:border-color .2s,box-shadow .2s}select[data-v-b6b2903f]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}select[data-v-b6b2903f]:disabled{opacity:.5;cursor:not-allowed}.algorithm-grid[data-v-b6b2903f]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}button[data-v-b6b2903f]{padding:10px 16px;border:none;border-radius:6px;background:#3b82f6;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:4px}button[data-v-b6b2903f]:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}button[data-v-b6b2903f]:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px -1px #0000000f}button[data-v-b6b2903f]:disabled{opacity:.5;cursor:not-allowed;transform:none}button.active[data-v-b6b2903f]{background:#1d4ed8;box-shadow:inset 0 2px 4px #0000001a}button.has-algorithm[data-v-b6b2903f]:not(.active):not(:disabled):hover{background:#60a5fa}.button-group[data-v-b6b2903f]{display:flex;gap:8px;margin-top:8px}.button-group button[data-v-b6b2903f]{flex:1}.complexity[data-v-b6b2903f]{font-size:11px;opacity:.8;background:#fff3;padding:2px 6px;border-radius:10px}button.disabled[data-v-b6b2903f]:not(:disabled){background:#94a3b8;cursor:not-allowed}button.disabled[data-v-b6b2903f]:not(:disabled):hover{background:#94a3b8;transform:none;box-shadow:none}.stats-display[data-v-81db507e]{background:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e5e7eb}.stats-grid[data-v-81db507e]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat-card[data-v-81db507e]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px;text-align:center}.stat-label[data-v-81db507e]{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stat-value[data-v-81db507e]{font-size:20px;font-weight:600;color:#1e293b;font-family:Courier New,monospace}.progress-section[data-v-81db507e]{margin-bottom:20px}.progress-header[data-v-81db507e]{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:8px}.progress-label[data-v-81db507e]{width:100%;font-size:14px;color:#475569;font-weight:500}.progress-detail[data-v-81db507e]{font-size:12px;color:#64748b;white-space:nowrap;margin-left:12px}.progress-bar[data-v-81db507e]{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill[data-v-81db507e]{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:4px;transition:width .3s ease;position:relative;overflow:hidden}.progress-fill[data-v-81db507e]:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer-81db507e 2s infinite}.progress-fill.completed[data-v-81db507e]{background:linear-gradient(90deg,#10b981,#34d399)}.progress-explanation[data-v-81db507e]{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280;background:#f9fafb;padding:6px 10px;border-radius:4px;border-left:3px solid #3b82f6}.explanation-icon[data-v-81db507e]{font-size:14px}.algorithm-info[data-v-81db507e]{display:flex;flex-direction:column;gap:8px}.info-item[data-v-81db507e]{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f1f5f9}.info-item[data-v-81db507e]:last-child{border-bottom:none}.info-label[data-v-81db507e]{font-size:14px;color:#64748b}.info-value[data-v-81db507e]{font-size:14px;font-weight:500;color:#1e293b}.status[data-v-81db507e]{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.status.completed[data-v-81db507e]{background:#d1fae5;color:#065f46}.status.paused[data-v-81db507e]{background:#fef3c7;color:#92400e}.status.sorting[data-v-81db507e]{background:#dbeafe;color:#1e40af;animation:pulse-81db507e 2s infinite}.status.waiting[data-v-81db507e]{background:#f1f5f9;color:#475569}@keyframes pulse-81db507e{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 6px #3b82f600}to{box-shadow:0 0 #3b82f600}}@keyframes shimmer-81db507e{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(max-width:640px){.progress-header[data-v-81db507e]{flex-direction:column;align-items:flex-start;gap:4px}.progress-detail[data-v-81db507e]{margin-left:0}}.app[data-v-eee1f15e]{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:20px;display:flex;flex-direction:column;gap:24px}.app-header[data-v-eee1f15e]{text-align:center;padding:20px;background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e5e7eb}.app-header h1[data-v-eee1f15e]{margin:0;font-size:32px;font-weight:700;color:#1e293b;background:linear-gradient(90deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle[data-v-eee1f15e]{margin:8px 0 0;color:#64748b;font-size:16px}.app-main[data-v-eee1f15e]{display:grid;grid-template-columns:1fr 350px;gap:24px}.visualization-section[data-v-eee1f15e]{display:flex;flex-direction:column;gap:20px}.app-footer[data-v-eee1f15e]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e5e7eb}.tips h3[data-v-eee1f15e]{margin:0 0 12px;color:#1e293b;font-size:18px}.tips ul[data-v-eee1f15e]{margin:0;padding-left:20px;color:#475569;line-height:1.6}.tips li[data-v-eee1f15e]{margin-bottom:8px}@media(max-width:1200px){.app-main[data-v-eee1f15e]{grid-template-columns:1fr}.app-header h1[data-v-eee1f15e]{font-size:28px}}
